본문 바로가기
JAVA BASE/Control Statement(제어문)

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

by staticClass 2020. 12. 5.

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를 잘 사용하지 못했고 
이 두개면 간단하게 처리할 반복문들도 매우 어렵고 힘들게
처리했었다. 
앞으로는 이름 많이 지어주면서 편하게 코딩 해야지😜

댓글