💁 분기문(Branching statement)이란,
조건문과 반복문 중간에서 주어진 조건의 흐름을 바꿀 수 있는 구문
어느 조건에 따라 프로그램의 실행 내용이 분기되는 것을 의미
💁 반복문 속의 break문은 자신이 포함된 가장 가까운 반복문을 빠져나가는 구문
int i = 1;
int sum = 0;
while(true) {
sum += i++;
>>> 반복문의 조건과 별개로 반복문을 빠져나오기 위한 조건을 다시 작성
if(i > 100) { >>> 수행할 명령문이 없거나 한 개 있으면 블럭({}) 생략 가능
break;
} >>> i가 100보다 커지면, 이 while반복문을 종료
}
System.out.println("1부터 100까지의 합은 " + sum + "입니다.");
public void testSimpleBreakStatement2() {
for(int dan = 2; dan < 10; dan++) {
for(int su = 1; su < 10; su++) {
if(su > 5) break;
>>> su가 5보다 크면 브레이크(su가 반복되는 내부 반복문만 종료)
System.out.println(dan + " * " + su + " : " + (dan+su));
}
}
}
📌 Ref.
* break문은 모든 반복문을 종료하는 것이 아니라 자신에게 가장 인접한 반복문 실행만 멈춤
public void testJumpBreak() {
label:
>>> label의 타겟(for)을 표시
for(;;) {
for(int i = 0; i < 10; i++) {
System.out.println(i);
if(i == 3) break label; >>> break의 label 표시
}
} >> lable로 타겟을 지정했기 때문에 외부 for문까지 break가 걸려 함께 종료
}
📌 Ref.
* lable은 이 상황에 주로 사용되는 변수명일뿐 다른 변수명으로도 얼마든지 가능
💁 반복문 내에서만 사용 가능하며 반복문 실행 시 continue 아래 부분은 실행하지 않고 다시 위로 올라가 반복문을 다시 실행
- 전체 반복 중에 특정 조건을 만족하는 경우를 제외하고자 할 때 유용
public void testSimpleContinueStatement() {
for(int i = 1; i <= 100; i++) {
>>> 4와 5의 공배수가 아닌 경우 아래 출력문을 출력하지않고 증감식으로 넘어감
if (!(i % 4 == 0 && i % 5 == 0)) {
continue;
}
System.out.println(i);
}
}
📌 Ref.
* continue는 모든 반복문을 건너 뛰는 것이 아닌, 자신에게 가장 인접한 반복문 실행만 건너뜀
🔑 Used Keywords
중첩 반복문 내에서 분기문의 흐름