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을 이용할 수 있죠.
'Programming > JAVA' 카테고리의 다른 글
jackson : jackson json parser 쓸 때 field ordering (0) | 2015.05.20 |
---|---|
java : 문득 왜 로컬변수는 초기화를 안할까에 대한 생각. (0) | 2015.01.29 |
[java] DTO등 객체의 property에 손쉽게 data set하는 유틸이 있네요. (0) | 2012.09.11 |
java : 정규식 표현을 해야할 경우에는 정규식 표현을 사용하는 것이 좋습니다. :) (0) | 2012.02.21 |
java : POJO란? (0) | 2011.12.19 |