Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++ For 루프와 While 루프 차이점 완벽 비교


프로그래밍에서 루프(loop)는 특정 코드 블록을 여러 번 반복해서 실행해야 할 때 사용됩니다. 이번 글에서는 대표적인 두 가지 반복문인 For 루프와 While 루프의 차이점을 자세히 살펴보겠습니다.

For 루프란?

For 루프는 반복 횟수 제어 방식의 반복문으로, 사용자가 지정한 횟수만큼 주어진 코드 블록을 반복 실행할 수 있도록 해줍니다.

For 루프 문법

for(초기화; 조건; 갱신){
   …반복할 코드
}

While 루프란?

While 루프는 진입 조건 검사 방식의 반복문으로, 주어진 조건이 참(true)인 동안 명령문을 계속해서 반복 실행합니다.

While 루프 문법

while(조건){
   …반복할 코드
}

For 루프와 While 루프의 차이점

  • For 루프는 반복 횟수 기반의 반복문이고, While 루프는 조건 기반의 반복문입니다.

  • For 루프는 초기화 부분에 갱신(update) 문을 함께 작성할 수 있지만, While 루프의 조건에는 제어식(control expression)만 작성할 수 있습니다.

  • For 루프의 검사 조건은 주로 정수 비교를 사용하는 반면, While 루프의 검사 조건은 불리언(boolean) 값으로 평가되는 어떤 표현식이든 사용할 수 있습니다.

두 루프가 서로 다른 결과를 내는 경우

두 루프가 다르게 동작하는 대표적인 사례는 루프 본문에 continue 문이 포함된 경우입니다. While 루프에서는 continue 문이 갱신(i++) 문보다 앞에 위치하면 무한 루프에 빠질 수 있지만, For 루프에서는 갱신 문이 루프 선언부에 포함되어 있어 이런 문제가 발생하지 않습니다.

예제 1: For 루프와 continue 문

다음 프로그램은 For 루프에서 continue 문이 어떻게 동작하는지 보여줍니다.

#include<iostream>
using namespace std;

int main(){

   cout<<"Displaying for loop working with continue statement\n";
   for(int i = 0; i < 5; i++){
      if(i == 3)
      continue;
      cout<<"loop count "<<i<<endl;
   }
   return 0;
}

출력 결과

Displaying for loop working with continue statement
loop count 0
loop count 1
loop count 2
loop count 4

For 루프에서는 i == 3일 때 continue가 실행되어 해당 반복만 건너뛰지만, 갱신식 i++는 여전히 실행되므로 나머지 반복이 정상적으로 진행됩니다.

예제 2: While 루프와 continue 문

같은 로직을 While 루프로 작성하면 결과가 완전히 달라집니다.

#include<iostream>
using namespace std;

int main(){

   cout<<"Displaying for loop working with continue statement";
   int i = 0;
   while(i < 5){
      if(i == 3)
      continue;
      cout<<"loop count "<<i<<endl;
      i++;
   }
   return 0;
}

출력 결과

Displaying for loop working with continue statementloop count 0
loop count 1
loop count 2

While 루프에서는 i == 3일 때 continue가 실행되면 그 아래의 i++가 건너뛰어집니다. 따라서 변수 i의 값이 3에서 더 이상 증가하지 않아 무한 루프에 빠지게 됩니다. 이처럼 continue 문의 위치와 루프 구조에 따라 같은 의도의 코드라도 전혀 다른 결과를 낼 수 있으므로, 반복문을 선택할 때 이러한 차이를 반드시 고려해야 합니다.