[JAVA 문법 종합반 3일차-while, break, continue]

김동규·2023년 5월 24일
0

While문

for문과 동일하게 특정 조건에 따라 반복하여 수행할때 사용한다. 단, 초기값 없이 조건문만 명시하여 반복한다.

While(조건문 { (연산) } 형태로 사용한다. (while문)
조건문을 만족해야만 연산이 반복 수행된다.
한번 반복할때마다 조건문을 체크하여 불만족(false)이면 반복을 중단한다.

do { (연산) } while(조건문) 형태로도 사용가능하다. (do-while 문)

While문의 무한 Loop에 빠지지 않게 주의할 것

int number = 0;
    while (number < 3) {
        number++;
        System.out.println(number + "출력");
        
   출력값: 1출력, 2출력, 3출력
   

do while

do를 한 이후 while작업을 진행한다.

int number = 4;
  do{
     System.out.println(number + " 출력");

    } while (number < 3);
    

출력값: 4 출력

만일 여기서 int number = 1; 일 경우 1 출력의 무한루프에 빠진다. 빠지지 않게 하려면 while 이전에 do 에서 number++; 을 해야 한다.

int number = 0;
do{
number++;
System.out.println(number + " 출력");

    } while (number < 3);
    

다음과 같이 되어야 한다.

break문

break; 명령을 내리면 가장 가까운 블럭의 for문 또는 while, switch 문을 중단한다.

int number = 0;
while (number < 3) {
number++;
if (number == 2) {
break;
}
System.out.println(number + "출력!");

while 문에 의해 0이므로 3보다 작고 number++;에 의해 0 → 1이 되었으므로 "1 출력"이 출력된다.

while문에 의해 1이므로 3보다 작다. number++;에 의해 1 → 2이 되었고 if문에 의해 number 2와 2는 같으므로 break가 실행되어 while문이 더 이상 출력이 진행되지 않는다.

for (int i=0; i<10; i++) {
     System.out.println("i: " + i);
     if (i == 2) {
     break;
     }
     for (int j=0; j<10; j++) {
         System.out.println("j: " + j);
         if(j == 2) {
         break;
                }
            }
    }
    
  1. for문 안에 중첩 for문이 사용되었다. 먼저 i의 경우 0이므로 브레이크에 걸리지 않고 하위 for문으로 이동한다.

  2. 하위 for문의 j는 0이므로 break에 걸리지 않는다. 이때 상위 for문으로 이동하지 않고 하위 for문에서 j가 j++에 의해서 0 → 1이 된다. 그렇게 "j: 0", "j: 1", "j: 2" 까지 된 후에 if문의 2==2 가 성립되어 break에 걸린다.

  3. 다시 상위 for문의 i가 0 → 1이 되고 마찬가지로 if문의 i == 2가 성립되지 않기에 하위 for문으로 이동한다."j: 0", "j: 1", "j: 2" 까지 된 후에 if문의 2==2 가 성립되어 break에 걸린다.

  4. 상위 for문의 i가 1 → 2가 되고 이번에는 if 의 2 == 2가 성립되기 때문에 break에 걸려서 하위 for문으로 이동하는 것 없이 출력이 마치게 된다.

continue

for문 또는 while 문에서 해당 순서를 패스하고 싶을 때 사용
반복문 안에서 continue; 형태로 사용

int number = 0;
 while (number < 3) {
       number++;
       if (number == 2) {
          continue;
          }
            System.out.println(number + "출력!");
        }
  1. number가 0 < 3에 충족하므로 number++; 에 의해 1로 된다. 이후 if문의 1 == 2 는 성립하지 않으므로 "1 출력!"이 출력된다.

  2. number가 1 < 3에 충족하므로 number++; 에 의해 2로 된다. if문의 2 == 2가 성립되므로 continue;문에 걸리게 된다. 이 때 출력을 진행하는 것이 아닌 바로 while문의 2 < 3으로 가서 진행한다.

  3. number++;에 의해 1이 추가 되어 3이 되고 "3 출력!"이 출력된다.

  4. 최종적으로 "1 출력!" 과 "3 출력!"이 출력된다.

profile
안녕하세요~

0개의 댓글