참고)
자바(java) 조건문은 https://codehouse.tistory.com/7, https://codehouse.tistory.com/8 에서 확인 가능하다.
자바(java) 반복문은 https://codehouse.tistory.com/11 에서 확인 가능하다.
1. break문
반복문을 끝까지 수행하지 않고 특정 조건을 만족했을때 반복을 중지하고 싶다면 break를 이용하여 중지할 수 있다.
다음 예제는 100이하의 자연수 중 짝수의 합이 1500이상일때 반복을 중지하는 코드이다.
예제)
1
2
3
4
5
6
7
8
9
10
11
12
13
|
//1부터 100까지의 자연수 중에서 짝수의 합이 1500이상이면 반복을 중지
int sum = 0;
for(int i=1; i <= 100; i++) {
if( i % 2 == 0) {
if( (sum+i) > 1500) {
System.out.println("1500까지의 합중 최대크기의 짝수는 " + i + "이다.");
break;
}
sum += i;
}
}
System.out.println("짝수의 합은 " + sum + "이다");
|
결과)
1500까지의 합중 최대크기의 자연수는 78이다.
짝수의 합은 1482이다
중첩 for문에서도 사용이 가능하다. 주의 해야할 점은 break는 자신의 코드 블록을 감싸고 있는 for문 밖에 중지시키지 못한다.
그러므로 중첩for문을 중지시키려면 각 코드블럭에서 모두 break문을 사용해야 한다. 다음 예제를 통해 확인해 보자
예제)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
//2단부터 9단까지 각 결과를 출력하고 각 결과의 값의 합이 200을 초과한다면 반복문을 중지하시오.
int sum2 = 0;
for(int i=2; i <=9; i++) {
if(sum2 > 200) {
break;
}
for(int j=1; j <= 9; j++) {
if(sum2 > 200) {
break;
}
sum2 += (i * j);
System.out.println(i + " X " + j + " = " + (i * j));
}
}
System.out.println("최종 합은 : " + sum2);
|
결과)
2 X 1 = 2
2 X 2 = 4
2 X 3 = 6
2 X 4 = 8
2 X 5 = 10
2 X 6 = 12
2 X 7 = 14
2 X 8 = 16
2 X 9 = 18
3 X 1 = 3
3 X 2 = 6
3 X 3 = 9
3 X 4 = 12
3 X 5 = 15
3 X 6 = 18
3 X 7 = 21
3 X 8 = 24
3 X 9 = 27
최종 합은 : 225
중첩 for문을 break문을 한번만 쓰고도 모두 반복수행을 정지 시킬 수 있다. 최상위 for문에 특정 이름을 붙여주는데 이를 라벨이라며 하며
break label명; 을 해주면 해당 label의 반복문을 빠져 나오게 된다. 위 예제를 이용하면 다음과 같다.
예제)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
//2단부터 9단까지 각 결과를 출력하고 각 결과의 값이 200을 초과한다면 반복문을 중지하시오.
int sum2 = 0;
exloop: // 해당 반복문 전체를 exloop라는 label을 지정해 준다.
for(int i=2; i <=9; i++) {
for(int j=1; j <= 9; j++) {
if(sum2 > 200) {
//break label이름을 사용하여 전체 반복문을 수행 중지 시킨다.
break exloop;
}
sum2 += (i * j);
System.out.println(i + " X " + j + " = " + (i * j));
}
}
System.out.println("최종 합은 : " + sum2);
|
2. continue문
특정 조건은 반복문의 처음으로 다시 되돌아가고 실을때 continue문을 사용한다. 다음 예제 코드로 확인해 보자.
예제)
1
2
3
4
5
6
7
8
9
10
11
|
// 1부터 10까지의 자연수 중 7을 제외한 합을 구하시오.
int sum = 0;
for(int i=1; i <=10; i++) {
if(i == 7) {
continue;
}
sum += i;
}
System.out.println("1부터 10까지 7을 제외한 합은 : " + sum);
|
결과)
1부터 10까지 7을 제외한 합은 : 48
continue문도 break문과 마찬가지로 중첩, 라벨이름을 활용하여 사용 할 수 있다.