제어문에서 활용될 수 있는 break문과 continue문에 대해 알아보도록 하겠습니다.
감싸고 있는 블럭의 제어를 빠져 나오는 기능을 하며 제어문에서 어떤 조건하에 반복문을 빠져나온다라는 방식으로 활용 됩니다. 하나의 블럭만 빠져나오기 때문에 중첩 반복문 중 내부 반복문에서 break문이 활용되었다면 외부 반복에서는 영향을 주지 않습니다.
public class BreakExample {
public static void main(String[] args) {
int sum = 0;
int num;
for( num = 1; ;num++) {
sum += num;
if(sum >= 100) {
break; //조건이 됬을때 바로 빠져나옴, 그래서 그때의 num값인 14를 캐치할수있음
}
}
System.out.println(sum); // 105
System.out.println(num); // 14
break문을 활용하여 1부터 숫자를 더해 나가다가 합계가 100을 초과 햇을 때 빠져나오는 반복문을 구현해 보았습니다. 반복문 중간에 조건문을 넣어 합계가 100이 되었을때 break; 로 빠져나오게 됩니다.
continue문은 반복문안에서 어떤 조건을 충족하였을때 수행문을 수행하지 않고 다시 조건을 검토하게 하는 기능을 합니다.
public class ContinueExample {
public static void main(String[] args) {
// 3의배수만 출력하자
for(int i = 1; i < 100; i++) {
// if(i % 3 == 0) {
// System.out.println(i);
// } // 도 같은 결과도출
// }
if(i %3 != 0) {
continue;
}
System.out.println(i);
}
coninue문을 활용하여 i가 3으로 나누어 떨어지지 않으면 수행문을 수행하지 않고 다음 반복으로 넘어가라는 조건을 추가하여 1~100까지의 숫자 중 3의 배수만 출력하는 반복문을 구현해 보았습니다.
Q. 구구단을 출력할 때 짝수 단만 출력하면서 단보다 곱하는 수가 작거나 같을 때까지만 출력하세요
public class BreakContinue {
public static void main(String[] args) {
int dan;
int count;
for (dan = 2; dan <10; dan++) {
if(dan % 2 != 0) {
continue;
}
System.out.println(dan+"단");
for(count = 1; count <10 ; count++) {
if(count > dan) {
break;
}
System.out.println(dan + "X" + count + " = " + dan*count);
}
System.out.println();
결과)
2단
2X1 = 2
2X2 = 4
4단
4X1 = 4
4X2 = 8
4X3 = 12
4X4 = 16
...
외부 반복문에 continue문을 넣어 홀수단일 경우 수행문을 수행하지 않고 다시 조건을 검토하며 내부 반복문에서 곱하는 수가 단수 보다 높아지면 break를 통해 반복문을 빠져나오게 구현하였습니다.
정리해보면 break;문과 continue문은 반복문을 더 세밀한 조건을 설정하여 구현하도록 돕는 역할을 할 수 있음을 알 수 있었습니다.