반응형


1. for 문

가장 간편하게 구현할 수 있는 반복문이다. 조건에 만족하면 반복하기 때문에 "for 루프"라고도 한다.


int a;

for( a=1; a<5; a++){

   System.out.println(a);

}

System.out.println("루프에서 벗어난 a값="+a);


for 문 앞의 작은괄호에는 초기화(a=1)_, 종료 조건(a<5), 증감 수식(a++)이 나열되어 있다. ++는 변수의 값에 1을 더해준다는 말로, 이 프로그램 코드를 번역하면 a는 1에서부터 출발하며, 5보다 작은 값이 될 때까지 a에 계속 1을 더하라는 말이다. 4를 벗어나면 조건식에서 벗어나므로 프로그램 실행결과는 다음과 같다. 


1

2

3

4

루프에서 벗어난 a값=5



2. while 문

for문에서 초기화 값이 사라진 상태. 명시된 조건이 true면 반복을 계속하고 false이면 while 블록을 빠져 나온다.


 int a=1;

while( a<5, a++){

  System.out.println(a);

  a++;

}

System.out.println("루프에서 벗어난 a값="+a);



이 코드는 먼저 a변수를 1로 선언해 주고, a가 5를 넘지 않을 때까지 a에 1을 쌓아 더하라는 말이다. 5를 넘으면 대괄호 밖으로 실행순서가 넘어가게 된다. 따라서 아까 for문과 출력되어 나오는 결과는 같다. 


3. do - while문

do - while문은 while문과 같지만 while 블록의 첫 실행이 무조건 실행된다는 것이 다르다. 


 int a=1;

do{

    System.out.println(a);

    a++;

} while( i>5 );

System.out.println("루프에서 벗어난 a값="+a);


do - while의 조건식은 대괄호 블록 뒤에 온다. 따라서 조건에 상관없이 첫번째 실행은 이루어지게 되는 것이다. 이 프로그램의 실행결과는 다음과 같다.


1

루프에서 벗어난 a값=2 


일단 블록 안의 것을 실행하므로 1을 출력하고, a의 값에 1을 더한다. 그리고 나서 조건식 적용을 시작하는데, a=2이르모, (i>5)식은 false, 거짓이다. 따라서 더 이상 반복하지 않고 프로그램 실행이 끝난다.


4. for문과 while문에는 어떤 차이가 있나?


for문은 조건식에 true가 되면 블록을 빠져나가고 while문은 조건식에 false가 되면 블록을 빠져나가라는 차이점이 있다. 둘은 문법적으로 완전히 대칭되면서 비슷한 역할을 수행하게 되는 것이다. 그리고 for문은 초기값을 정해준다는 것도 문법적인 차이점이다. 따라서 for문은 주로 반복 횟수가 정해져 있을 때 쓰고, while문은 횟수 상관없이 조건식을 만족하는 동안 반복해 수행할 작업이 있을 때 쓴다.



공부 외 단상


나한테 반복문을 걸고 싶을 때가 있다. 꾸준함이 필요할 때이다. 귀찮다고 느낄 때마다 내 감정을 포맷하고, 처음으로 돌아와 일을 할 수 있을까? 요새는 일본어, 중국어 등 외국어를 공부하고 있는데, 단어나 문법을 한 번 외우고 나면, 나중에 적용하려고 하면 어느새 잊어버린 채 헤매는 경우가 많다. 조건식을 걸어서 잊어버리면 바로 다시 공부내용을 읽어들이도록 나를 프로그래밍하고 싶다.

 



반응형

+ Recent posts