자바의 반복문에는 for, while, do~ while이 존재한다. 그리고 반복문 내에서 반복문을 제에하기 위해서 continue
, break
를 사용할 수 있다. 다른 언어들과 달리, 자바의 반복문에 특이한 특징 하나가 있다. 바로 이름 붙은 반복문
이다.
중첩된 반복문에서 가장 안에있는 break는 최상위 반복문을 벗아나지 못한다. 이런 경우 중첩 반복문 앞에 이름을 붙이고 break, continue를 통해서 제어를 해줄 수 있다.
public class Main{
public static void main(String[] args){
Loop1 : for(int i = 1; i <= 10; i++){
if(i % 3 == 0){
continue Loop1;
}
for(int j = 1;j <= 10;j++){
if(i == 7 && j == 2){
break Loop1;
}
if(j % 5 == 0){
continue;
}
System.out.printf("%d x %d = %d%n",i,j,i*j);
}
}
}
}
위 코드를 보면 최상위 반복문에 Loop1
이라는 이름을 붙인것을 알 수 있다. 그리고 아래와 같은 조건으로 제어를 한다
Loop1
을 뛰어넘는다Loop2
를 뛰어넘는다반복문을 각각 명시하는 코드로 작성해 줄 수 도 있다. 외부 반복문을 outer
라는 이름으로, 내부 반복문을 inner
라는 이름으로 지정하여 작성한 코드이다.
public class Main{
public static void main(String[] args){
outer : for(int i = 1; i <= 10; i++){
if(i % 3 == 0){
continue outer;
}
inner:
for(int j = 1;j <= 10;j++){
if(i == 7 && j == 2){
break outer;
}
if(j % 5 == 0){
continue inner;
}
System.out.printf("%d x %d = %d%n",i,j,i*j);
}
}
}
}
결과는 아래와 같다
1 x 1 = 1
1 x 2 = 2
1 x 3 = 3
1 x 4 = 4
1 x 6 = 6
1 x 7 = 7
1 x 8 = 8
1 x 9 = 9
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
4 x 1 = 4
4 x 2 = 8
4 x 3 = 12
4 x 4 = 16
4 x 6 = 24
4 x 7 = 28
4 x 8 = 32
4 x 9 = 36
5 x 1 = 5
5 x 2 = 10
5 x 3 = 15
5 x 4 = 20
5 x 6 = 30
5 x 7 = 35
5 x 8 = 40
5 x 9 = 45
7 x 1 = 7