break문과 continue문의 차이
break
반복문을 즉시 종료하고 나간다.
while(조건식) {
코드1;
break; / / 즉시 while문 종료로 이동한다.
코드2;
}
/ / while문 종료
break를 만나면 코드2를 실행하지 않고 while 반복문이 종료된다.
continue
반복문의 나머지 부분을 건너뛰고 다음 반복으로 진행하는 데 사용된다.
while(조건식) {
코드1;
continue; / / 코드2를 건너뛰고 다시 조건식으로 이동한다.
코드2;
}
continue를 만나면 코드2가 실행되지 않고 다시 조건식으로 이동한다. 조건식이 참이면 while문을 실행한다.
break vs continue 예제
package day04;
/*보조 제어문
* break: 가장 가까운 반복문을 이탈함
* continue: 가장 가까운 반복문을 계속 수행함
* */
public class BreakContinue {
public static void main(String[] args) {
System.out.println("1.------------------");
for(int i=0; i<3; i++) {
if(i==1) break;
System.out.println("i=" +i);
}//for-----
System.out.println("2.------------------");
for(int i=0; i<3; i++) {
if(i==1) continue;
//조건에 부합하면 아래 문장을 skip하고 반복문을 계속 수행
System.out.println("i=" +i);
}//for-----
System.out.println("3.------------------");
for(int i =0; i<3; i++) {
for(int k = 0; k<3; k++) {
if(k==1) break;
System.out.println("i="+i+ ", k=" +k);
}
}//for-----
System.out.println("4.------------------");
for(int i =0; i<3; i++) {
for(int k = 0; k<3; k++) {
if(k==1) continue;
System.out.println("i="+i+ ", k=" +k);
}
}//for-----
}
}
label 기능
- 주로 중첩 반복문에서 반복문을 한번에 빠져나가기 위해 사용
- 반복문 앞 또는 위에 레이블을 붙일 수 있음
- break 레이블명; 레이블과 가까운 반복문을 이탈
- continue 레이블명; 레이블과 가까운 반복문을 계속 수행
레이블명1:
바깥쪽 반복문() {
레이블명2:
안쪽 반복문() {
if(조건식) break 레이블명1; or continue 레이블명1;
}
}
System.out.println("5.------------------");
outer: //label
for(int i =0; i<3; i++) {
inner: //label
for(int k = 0; k<3; k++) {
if(k==1) break outer; //break 레이블명;
System.out.println("i="+i+ ", k=" +k);
}
}//for-----
System.out.println("6.------------------");
aaa:
for(int i =0; i<3; i++) {
bbb:
for(int k = 0; k<3; k++) {
if(k==1) continue aaa; //continue 레이블명;
System.out.println("i="+i+ ", k=" +k);
}//for-----
}