글 작성자: 개발자 올라프

개요

  • 일단은 조건에 만족시 구문을 벗어나게 하려고 정확히 이해하지도 않고 break, continue를 남발하게 되었지만 내가 원하는대로 프로그램이 흘러가지 않았다. break문과 continue문이 어떻게 작동하는지 정리해보자.

 


 

1. break문

break문은 자신이 포함된 가장 가까운 반복문을 벗어난다.

 

다음 그림을 보고 break;문이 어느 범위를 벗어나고 어떤 결과가 출력될지 예상해보자.

 

결과는?

1번
2번
4번

 

3번은 출력되지 않았다. 3번이 출력될 줄 알았다면 아마도 if조건문을 반복문으로 착각하여 "if(){ }문을 벗어나겠구나!"라고 생각했을 것이다.

break문은 현재 while반복문 내 if조건문에 포함되어 있다. break;문을 만나게 되면 가장 가까운 반복문인 while문 전체를 벗어나게 되어 3번이 출력되지 않고 곧바로 4번이 출력되는 것이다.

 

 


 

2. continue문

continue문은 반복문의 끝으로 이동하여 다음 반복으로 넘어간다. break문과 다르게 반복문 전체를 벗어나지 않고 다음 반복을 계속 수행할 수 있다.

 

(1) for문의 경우 증감식으로 이동

(2) while문, do-while문의 경우 조건식으로 이동

 

다음 그림을 보고 어떤 결과가 출력되는지 생각해보자

참고로 if(i%2==0)은 i를 2로 나누었을 때 0과 같다면..이라는 의미인데 이는 2의 배수로 생각할 수 있다.

 

결과는?

1
3
5
7
9

0부터 9까지 증가하면서 2의 배수일 때마다 continue;구문을 만나 아래와 같이 for() { } 구문의 끝으로 이동하여 2의배수가 출력되지 않았다.

 

 

break;문과 다르게 for() { } 구문을 벗어나지 않고 구문의 끝으로 이동하여 조건식이 false가 될 때까지 반복한 것이다.

 


 

breank문? continue문? 언제 사용해야 하는가

break문은 특정 조건을 만족하면 반복문을 벗어날 때 사용하면 유용하고,

continue문은 전체 반복 중에 특정조건을 만족하는 경우를 제외하고자 할 때 유용하다.