while 이란?

while 은 반복 수행을 하게 만드는 함수이다.

프로그램 개발자가 반복적으로 수행해야 하는 상황에 처했을 때 같은 문장을 계속 작성하는 일은 매우 비효율 적이다.

그래서 for(반복)을 사용하여 code를 효율적으로 작성한다.


while header

iostream 을 include 해야 한다.

예시

#include <iostream>

while 사용 방법

while 의 형태는 다음과 같다.

초기조건

while(반복 수행 조건)
{
	//반복을 수행할 알고리즘

	증감 조건
}

예시

#include <iostream>

using namespace std;

int main()
{
	//초기 조건 -> int형 변수 i의 값 : 0
	int i = 0;

	//반복 수행 조건 -> i의 값이 10 미만이면 참(true)
	while(i < 10)
	{
		cout<<"i : "<<i<<endl;
		cout<<" test"<<endl;
	
		//증감 조건 -> i 가 1씩 증가함
		i++;
	}

	return 0;
}

실행 결과

i : 0
 test
i : 1
 test
i : 2
 test
i : 3
 test
i : 4
 test
i : 5
 test
i : 6
 test
i : 7
 test
i : 8
 test
i : 9
 test

반복문(while)을 실행하면 반복 문의 중괄호 안에 있는 모든 것이 반복 문의 조건식에 맞춰서 반복한다.

반복문에 중괄호를 안 하면 어떻게 될까? 다음 예제를 보자.

예시

#include <iostream>

using namespace std;

int main()
{
	//초기 조건 -> int형 변수 i의 값 : 0
        int i = 0;

        //반복 수행 조건 -> i의 값이 10 미만이면 참(true)
        while(i < 10)
                cout<<"i : "<<i<<endl;
                cout<<" test"<<endl;

		//증감 조건 -> i 가 1씩 증가함
		i++;

	return 0;
}

실행 결과

i : 0
i : 0
i : 0
...

실행 결과와 같이 반복문에 중괄호를 하지 않을 경우 반복문 바로 아래 한 줄만 반복하는 것을 알 수 있다.

따라서 예제에서는 while의 증감 조건을 실행하지 못한다.

그래서 의도치 않은 무한 반복(infinite loop)가 발생한다.

그러므로 while을 사용할 때는 중괄호를 사용하자.

그러면 while으로 의도된 무한 반복을 하려면 어떻게 해야 할까? 다음 예제를 보자.

예시

#include <iostream>

using namespace std;

int main()
{
	int test = 0;

	//초기 조건 없음, 반복 수행 조건은 항상 참(true), 증감 조건 없음 -> 무한 반복
	//무한 반복을 조건에 맞게 끝내고 싶으면 if 와 braek를 사용한다.

	while(1)	// 1 대신에 true를 사용해도 된다.
	{
		cout<<"Test : "<<test<<endl;
		test++;

		/*
		if(반복문을 빠져나갈 조건식)
		{
			//조건식을 빠져나갈 때 사용되는 알고리즘

			break;
		}
		*/
	}
}

실행 결과

Test : 0
Test : 1
Test : 2
Test : 3
...

끊임없이 반복되는 것을 볼 수 있다.

감사합니다.


홈으로 가기 더 많은 C++ post 보기 post 목록 보기