목차
- break
- continue
1. break
- break;는 반복문 내에서 사용된다. 자신이 포함된 가장 가까운 반복문을 빠져나가는 구문이다.
- break;가 선언된 즉시 조건식 판단 결과에 상관 않고 속해 있는 반복문을 종료시킨다.
- 조건문인 switch문은 예외적으로 사용되고 있다: [JAVA] 4-1. 조건문 if, switch
- 일반적으로 if(조건식) { break; } 형식으로 사용된다.
단독 반복문에서 break;
- 조건식이 생략된 for문에서 끝도 없이 출력될 상태에 놓였을 때 if문 안에 break;가 작동하며 반복문인 for문 전체가 종료되는 예이다.
for(int i = 1;; i++) { // 조건식이 생략된 상태
System.out.println(i + "출력"); // 끝도 없이 출력될 예정
if(i >= 10) {
break; // 읽히는 순간 for문 전체를 빠져나간다.
}
}
- 1~100까지 합계를 구하는 예시이다.
- while(true)로 무한루프를 만들고 → 내부에 if문으로 (i == 100)이면 break; 라는 조건을 추가해 while문 전체를 빠져나갈 수 있도록 했다.
- break;가 없으면 while문 바깥의 코드들은 Unreachable code 오류가 된다.
public void sumOneToAHundred() {
int sum=0;
int i=1;
while(true) {
sum += i;
if(i == 100) {
break;
}
i++;
}
System.out.println("1부터 100까지의 합은 " + sum + "입니다.");
}
1부터 100까지의 합은 5050입니다.
중첩 반복문에서 break;
- for(;;) = while(true) 무한루프가 선언된 예이다.
- 사실 if문 안에 작성된 break;는 내부 for문까지만 빠져나오게끔 약속돼 있다.
- 이에 외부 for문 상단에 label: 이라는 이름을 붙이고, 이 이름을 break문에 똑같이 기재해주면 해당 이름의 반복문 모두 실행을 마칠 수 있다.
public void jumpBreak() {
label:
for(;;) {
for(int i=0; i < 10; i++) {
System.out.println(i);
if(i == 3) {
break label;
}
}
}
}
label 없이는 → 012301230123 반복...
label 붙이면 → 0123
- 이와 같이 중첩 반복문 내에서 어디까지 break 할 것인지를 지정하여 사용할 수 있다.
2. continue
- continue; 아래 부분은 실행하지 않고 반복문을 다시 실행하도록 한다.
- 전체 반복 중 특정 조건을 만족하는 경우를 제외하고자 할 때 유용하다.
- 일반적으로 if(조건식) { continue; }처럼 쓰인다.
- for문은 증감식으로 이동, while문은 조건식으로 넘어가게 만든다.
단독 반복문에서 continue;
- 4의 배수이면서 5의 배수인 공배수 값만 출력하고자 한 예시이다. 결과적으로 20의 배수들만 출력하는 셈이다.
public void printFromOneToAhundred() {
for(int i=1; i <= 100; i++) {
if(!(i % 4 == 0 && i % 5 == 0)) {
continue;
}
System.out.println(i);
}
}
20
40
60
80
100
중첩 반복문에서 continue;
- continue; 역시 모든 반복문을 건너뛰는 것이 아니라, 자신에게 가장 가까운 반복문의 실행만을 끝낸다.
- 그러므로 필요에 따라 label: 을 활용하여 어느 영역 밖으로 나갈 것인지 명시할 수 있다.
public void printGugudanLabel() {
label:
for(int dan=2; dan <= 9; dan++) {
for(int num=1; num <= 9; num++) {
if(num % 2 == 0) {
continue label;
}
System.out.println(dan + " * " + num + " = " + (dan * num));
}
}
}
2 * 1 = 2
3 * 1 = 3
4 * 1 = 4
5 * 1 = 5
6 * 1 = 6
7 * 1 = 7
8 * 1 = 8
9 * 1 = 9
✅ 분기문 break의 흐름을 이해할 수 있다.
✅ 분기문 continue의 흐름을 이해할 수 있다.
'Java' 카테고리의 다른 글
[자바의 정석] Ch 3. 연산자 예제 응용 학습 (0) | 2021.12.25 |
---|---|
[자바의 정석] Ch 3. 연산자 연습문제 풀이 (0) | 2021.12.25 |
반복문 수업 Quiz (0) | 2021.12.24 |
[JAVA] 4-2. 반복문 for, while (0) | 2021.12.24 |
조건문 수업 Quiz (0) | 2021.12.24 |