본문 바로가기

Programming/JAVA

java : label break 를 통한 반복문 제어

java에서는 goto 문을 지원하지 않습니다.

그래서 2중, 3중 반복문을 돌릴때 안쪽에 있는 반복문에서 특정 조건에 의하여

반복문을 빠져나오기 위해 flag 변수를 사용하는 경우가 많죠.

(사실 오늘에서야 label break 란 걸 알게되었죠^^;;;; 이럴때마다 왜이리 기초가 부족한지 ㅠㅠㅠㅠ)

이러한 flag 변수를 막고 보다 가독성이 나은 방법으로 label break 를 이용합니다.

반복문 앞에 label을 붙여주고 해당 label의 반복문 내에 break, 혹은 continue를 걸어주는 거죠.

그럼 중첩반복문을 제일 쉽게 사용할만한 구구단 예제를 볼까요?


public class MultiplicationTable {
	public static final int START = 1;
	public static final int MAX = 9;
	public static void main(String[] args) {
		bfLoop : for(int bfOperand =START; bfOperand<=MAX; bfOperand++){
			System.out.println("==== " + bfOperand + "단 입니다. ====");
			if(bfOperand > MAX) break;
			for(int afOperand = START; afOperand<=MAX; afOperand++){
				System.out.println(bfOperand + "*" + afOperand + "=" + bfOperand*afOperand);
				if(afOperand==MAX) continue bfLoop;
			}
		}
	}
}

위처럼 작성할 수 있겠는데요, 보시면 알 수 있듯이 bfLoop을(바깥 반복문)

afOperand가 9일 경우에 continue하는걸 볼 수 있습니다.

물론 바깥 반복문에서 bfOperand가 9보다 클 경우에도 lable을 이용할 수 있죠.