JAVA

[JAVA] 기타제어문 - break와 continue

(งᐛ)ว 2023. 8. 18. 00:41
728x90
728x90

기타제어문 : 특정 조건에 따라 중간에 반복문을 빠져나오거나 특정값을 건너뛸 수 있고

반복문(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

 

 

728x90