[JAVA] 기타제어문 - break와 continue
기타제어문 : 특정 조건에 따라 중간에 반복문을 빠져나오거나 특정값을 건너뛸 수 있고
반복문(for, while)내에서만 사용이 가능하다.
break : 가장 가까운 반복문을 빠져나감
for(int i =1; i<=2; i++) {
for(int j =1; j<=5; j++) {
if(j % 4==0) {
break;
}
System.out.print(j+" ");
}
System.out.println();
}
//실제로는
12345
12345
출력되어야하나 4의 배수를 만나면 반복문을 빠져나가므로
123
123이 출력된다.
int n = 1;
while (true) {
System.out.print(n);
n++; // 1씩 증가하는 무한루프
if (n > 10) {
break; // 괄호의 조건이 참이되어야 break가능하므로 n이 11이 되면 break로 while문 빠져나오기
}
}
// 12345678910
continue : 반복문에서 만나면 반복문의 증감식으로 돌아가고 증감식이 없다면 조건식으로 돌아감
for(int i =1; i<=2; i++) {
for(int j =1; j<=5; j++) {
if(j % 2==0) {
continue;
}
System.out.print(j+" ");
}
System.out.println();
}
//실제로는
12345
12345
출력되어야하나 2의 배수를 만나면 증감식으로 되돌아가 나머지를 수행하므로
135
135가 출력된다.
int n = 0;
while(n<10) {
n++;
if(n%2 !=0) { //홀수인 경우 참이되어 continue를 만나 되돌아가므로 짝수만 출력될 예정
continue; //while문에서도 continue를 만나면 조건식으로 이동
}
System.out.print(n);
} //10은 출력되지 않을 것 같지만 출력된 이후 while문을 빠져나오므로 10도 출력됨
//246810
❓switch문 break와 기타제어문을 구분할 수 있을까❓
while반복문 안에 switch조건문을 보자
n이 1일 때 case 1의 출력문을 수행하고 break를 만나 종료하는데
이때 while까지 나가는 것이 아닌 switch문만 탈출하고 while문의 출력문까지 수행한다.
따라서 출력문은 2개가 된다. 이후 반복문 정상 수행
n이 2일 때 case 2의 출력문을 수행하고 continue를 만나
while반복문 조건식으로 되돌아가 다음 숫자를 실행한다. while문의 출력문은 수행할 수 없다.
따라서 출력문은 1개가 된다.
+) switch문 break를 기타제어문 break처럼 활용하는 방법
label 이용하기
n이 1일 때 case 1의 출력문을 수행하고 break와 label을 만나면
while문의 출력문까지 가지 못하고 짝꿍 label을 찾아 그대로 반복문을 종료한다.
따라서 출력문 1개가 된다.
**label에 대한 추가 내용
[JAVA] label
label : 특정 반복문에 이름표를 붙여 두개 이상의 반복을 제어할 수 있는 키워드 **label의 특징 항상 쌍으로 존재 원하는대로 이름 설정가능 자신을 포함하는 상위개념에게만 적용가능 1️⃣for문
studywithjw.tistory.com