JAVA BASE/Control Statement(제어문)

05. [자바] 반복문 - break, continue, 이름 붙은 반복문

staticClass 2020. 12. 5. 01:40

break문

switch문에 break이 있듯이 반복문에도 break가 있다. switch문에서 그랬던 것처럼
break문은 자신이 포함된 가장 가까운 반복문을 벗어나며, 주로 if문과 함께 사용되어
특정 조건을 만족하면 반복문을 벗어나도록 한다.

int i = 0;
while(true){  // ← 특별한 제어가 없다면 이 while문은 무한으로 반복한다.
    if(i == 10){  // i가 10이 되면 if문 실행
        break;      // 멈춘다
    }
    i++;
}

이런 무한 반복문에는 조건문과 break문이 항상 같이 사용된다.
그렇지 않으면 무한히 반복되기 때문에 프로그램이 종료되지 않을 것이다.

 

continue문

continue문은 반복문 내에서만 사용될 수 있고, 반복 도중 continue를 만나면
반복문의 끝으로 이동 후 다음 반복으로 넘어간다.
continue의 경우 반복문 전체를 벗어나지 않고 다음 반복으로 넘어간다는 게 break와 다른 점이다.

for(int i = 1 ; i <= 10 ; i++){
    if(i%2 != 0){    //짝수가 아닐 continue : 포문 처음으로 돌아가라
        continue;    
    }
    System.out.println(i);    //짝수만 출력된다
}

 

이름 붙은 반복문

break문은 해당 블록의 for문이나 while문 하나만 벗어날 수 있기 때문에
여러 개의 반복문이 중첩된 경우에는 break문으로 중첩 반복문을 완전히 벗어날 수 없다.
이때는 중첩 반복문 앞에 이름을 붙이고 break문과 continue문에 이름을 지정해주어
하나 이상의 반복문을 벗어나거나 반복을 건너뛸 수 있다.

outer:
while(true) {
    ···
    for(;;) {
        ···
        if(num==0){    
            break;   // for문을 벗어난다
            continue // for문의 시작으로 돌아간다.
        }
        if(num==9){ 
            break outer;    // for문과 while문 모두 벗어난다.
            continue outer; // while문의 시작으로 돌아간다.
        }

    }//for문 끝

}//while문 끝

 


 

사실 break나 continue는 알고 있었지만😑
반복문에 이름을 달수 있다는것은 모르고 있었다.
하아..💨 나의 과거🤦‍♂️ 
당연히 이름 다는것을 모르니
break와 continue를 잘 사용하지 못했고 
이 두개면 간단하게 처리할 반복문들도 매우 어렵고 힘들게
처리했었다. 
앞으로는 이름 많이 지어주면서 편하게 코딩 해야지😜