본문 바로가기
C++/이론

[C++] 보조 제어문 (break문, continue문)

by 씐 2023. 9. 30.
728x90

break문

 

break문이란?

  • break문은 프로그램의 일부를 수행하지 않고 건너뛰게 해서 switch문, for문, while문, do~while문의 제어를 벗어나기 위해 사용할 수 있다.
  • 어떠한 break문을 만나면 무조건 제어문의 블록을 빠져나와야 한다.
  • 다중 반복문에서 break문을 만나면 break문이 포함되어 있는 가장 가까운 반복문만 벗어난다.

 

 

break문의 기본 형식

for(초기식; 조건식; 증감식){
  문장 1;
  if (조건식)
    break;
  문장 2;
}
문장 3;
  • 형식에 맞춰 반복문을 수행하다가 break문을 만나면 무조건 반복문의 블록을 빠져나옴.
  • 만약 for문을 수행하다가 if문의 조건을 만족한다면 <문장2>를 수행하지 않고, for문의 조건도 다시 검사하지 않으면 무조건 {}을 벗어나 <문장 3>을 수행하게 된다.

 

 

break문의 순서도


continue문

 

continue문이란?

  • continue문의 단어 자체에는 '계속'이라는 뜻이 있지만 C++에서의 의미는 좀 다름.
  • continue문도 break문과 같이 프로그램을 수행하다가 continue문을 만나면 제어가 다음 문장이 아닌 다른 곳으로 옮겨짐.
  • 그렇지만 break문처럼 실행을 중단하고 반복문을 아예 벗어나는 것이 아니라 반복문을 계속 수행하려고 다시 반복문의 처음으로 돌아감.
  • continue문은 for문, while문, do~while의 반복문과 함께 사용되며, break문과는 다르게 switch문에서는 사용되지 않음.

 

 

continue문의 기본 형식

while(조건식){
  문장 1;
  if(조건식)
    continue;
  문장 2;
}
다음 문장;
  • 반복문을 수행하다가 if 조건이 참이 되는 순간 continue를 만나 다시 while문의 조건식으로 돌아간다.

break문과 continue의 차이

 

break문의 코드

#include <iostream>
using namespace std;
int main()
{
  int total = 0;
  int i;
  for(i = 1; i <= 10; i++){
    if(i % 2 == 0) // i가 2로 나누어 떨어지면. 즉, 짝수이면.
      break;
    total += i;
  }
  cout << "i가 " << i << "일 때 for문을 벗어남. \n";
}

 

break문의 결과

  • if의 조건은 i가 짝수일 때 참이므로 가장 최초의 짝수인 2를 만나면 break문을 만나 for문을 벗어나게 된다.
  • for문을 벗어난 후에는 cout을 만나 수행하게 된다.

 

 

continue문의 코드

#include <iostream>
using namespace std;
int main()
{
  int total = 0;
  int i;
  for(i = 1; i <= 10; i++){
    if (i % 2 == 0)
      continue;
    total += i;
  }
  
  cout << "i가 " << i << "일 때 for문을 벗어남. \n";
  cout << "total : " << total << "\n";
}

 

continue문의 결과

  • if의 조건은 i가 짝수일 때 참이므로 짝수일 때 continue를 만나 다시 for문의 처음으로 돌아가게 된다. 이 때, 남은 문장인 total += i;은 수행하지 않게 된다.
  • 2, 4, 6, 8, 10과 같이 짝수면 if문의 조건을 만족하게 되어 total 변수에 짝수값이 누적되지 않는다.
  • 즉, 짝수를 제외한 홀수들의 합을 구한 것이다.
  • 제어 변수 i가 11이 되면 조건에 만족하지 않으므로 i가 11일 때 for문을 벗어나게 된다.

본 게시물은 "C++ 하이킹 객체지향과 만나는 여행"을 기준으로 작성함을 알립니다.

'C++ > 이론' 카테고리의 다른 글

[C++] 함수(1)  (5) 2024.09.20
[C++] 무한 루프 (for문, while문, goto문)  (0) 2023.10.01
[C++] 반복문 (for문, while문)  (0) 2023.09.29
[C++] 제어문과 선택문(if~else 문, switch 문)  (0) 2023.09.28
[C++] 연산자  (0) 2023.09.07