본문 바로가기
Programming/JAVA

5-4 continue & break

by CGS 2019. 3. 9.

"continue"와 "break"는 반복문 내에 삽입이 되어, 반복문의 실행 흐름을 조절하는데 사용됩니다.


먼저 break를 알아보겠습니다.


break는 switch문을 빠져나갈때 사용된다고 먼저 설명을 드렸습니다. 마찬가지로 반복문을 빠져나가는 용도로도 사용되기도 합니다.


보통은 if문과 같이 사용이 되어서 특정한 조건을 만족하면 반복문을 빠져나가도록 사용을 합니다.


public class BreakBasic {

public static void main(String[] args) {

int num=1;

boolean search=false;

while(num<100) {

if(num%5==0 && num%7==0) {

search=true;

break;

}

num++;

}

if(search)

System.out.println("찾는 정수 : " +num);

else

System.out.println("찾지 못했습니다.");

}


}


이 예제에서 보면, while문 안에서 num의 값이 5와 7의 공배수인 숫자가 되는 경우, while문을 빠져나가도록 만들어진 예제입니다.


num의 값이 5와 7의 공배수인 35가 되었을 때 빠져나가서 


실행시켜보면


찾는 정수 : 35 라는 결과를 얻을 수 있게 됩니다.


예제에서 break문은 if문이 감싸고 있는 형태로 되어있는데, break는 실행이 되었을 때 가장 가까운 반복문부터 중단하고 빠져나가기 때문에 while문을 중단하고 아래의 if문을 실행하게 됩니다.


continue문은 반복문의 탈출이 아닌, 실행 중인 반복문의 나머지 부분을 생략하고 프로그램의 흐름을 조건검사 부분으로 이동합니다.



public class ContinueBasic {


public static void main(String[] args) {

// TODO Auto-generated method stub

int num=0;

int count=0;

while(num++<100) {

if(num%5 != 0 || num%7 != 0)

continue;

count++;

System.out.println(num);

}

System.out.println("count : " + count);


}


}



이 예제에서 num의 값이 5의 배수가 아니거나 7의 배수가 아니라면 continue문을 실행하여 조건의 검사를 위해 나머지 부분을 생략하게 되어서 35와 70만 출력하게 되고 count의 값은 2가 됩니다.

반복의 조건이 true가 되면 반복문을 빠져나가지 못하는 "무한루프"가 됩니다.


public class InfLoop {

public static void main(String[] args) {
// TODO Auto-generated method stub
int num=1;
while(true) {
if(num%6==0 && num%14==0)
break;
num++;
}
System.out.println(num);

}

}

위와 같은 예제는 무한루프로 무한히 많은 횟수를 반복하되, 6과 14의 공배수 중 가장 작은 수를 찾는 것 입니다.


6과 14의 배수가 되는 자연수의 크기를 예측할 필요가 없기 때문에 무한루프로 형성하였고, 무한루프로 구성하지 않을 것 이라면 얼마이상 되지 않는지에 대한 대략적인 계산이 선행되어야 합니다.


실수를 범하여 무한루프가 발생한 경우, 이를 멈추기 위해 break문을 활용할 수 있습니다. 

'Programming > JAVA' 카테고리의 다른 글

6-1 메소드에 대한 이해와 메소드의 정의  (0) 2019.04.02
5-5 반복문의 중첩  (0) 2019.03.25
5-3 for, while, do~while  (0) 2018.10.13
5-2 switch / break  (0) 2018.09.17
5-1 if~else  (0) 2018.09.16