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-----
		}

실행 결과

+ Recent posts