소프트웨어/C 언어

[C언어]10. 반복된 일을 계속해주는 반복문에 대하여 알아보자 -2- (while 문)

리습 2013. 6. 5. 07:00

안녕하십니까. 리습입니다. 


 지난번엔 컴퓨터에게 반복하는 일을 시키는 for 이라는 것을 배웠습니다. 그렇다면 또다른 반복하는 일 시키는 법을 알아보도록 하겠습니다. 

 for같은 경우 초기값, 조건식, 증감식 을 모두 갖추고 있으므로 for 하나로만으로도 몇번의 반복을 편하게 만들수 있었죠. 하지만 조건이 복잡해지거나 단순한 숫자의 조건이 아닐 경우엔 어떻게 하시겠습니까? 경우를 하나하나 따져서 for문을 전부다 만들순 없으니까요. 그래서 있는 것이 while 반복문 입니다. while문은 단지 증감식으로 횟수를 세는 거니 아니라 반복할때마다 조건을 따지는 반복문입니다. 

 while 의 형태를 보도록 하겠습니다.


1. <조건식> :  이 while 문이 실행될 조건을 적어준다. 조건이 맞을 경우 밑에 <해야할 일>을 수행하게 되고 그렇지 않을 경우 실행히 되지 않는다.. 이 조건에 대한 실행은 if 문과 같으며, ( ) 안에 0을 넣으면 FALSE(틀림), 1을 넣으면 TRUE(맞음) 과 같다. 때문에 복잡한 조건이 있을 경우 이를 함수로 만들어 return 값을 0, 1로 조작하면 복잡한 조건에 대한 반복문을 만들수 있게 된다. 

 이렇게 while 문은 간단한 조건도 복잡한 조건도 사용할 수 있습니다. 때문에 활용도가 매우 높으며 무한 루프( 무한으로 반복하는 것) 또한 조건식에 1을 넣는 것만으로도 간단하게 만들 수 있습니다. 그럼 하나 코드를 보도록 하겠습니다. 이번 코드는 단순하게 숫자로 표시된것입니다.

 

 코드

 #include<stdio.h>

 

int main(void)

{

    int i = 0;

    while ( i < 10 )

    {

         printf("%d 번째 반복중입니다. \n", i+1);

         i = i+1;

     }

    return 0;

 

 결과

 1 번째 반복중입니다.  

 2 번째 반복중입니다. 

 3 번째 반복중입니다.

        .... 

 8 번째 반복중입니다. 

 9 번째 반복중입니다. 

 10 번째 반복중입니다. 

 
 예로 든 코드의 분석은 어렵지 않으실겁니다. 단지 while 문에선 초기식 과 증감식이 없기 때문에 외부에 초기식, 내부에 증감식을 넣어준것 뿐입니다. 하지만 이런식으로 사용한다면 while 문은 for 문과 같을 뿐 이겠죠. 하지만 조건에 함수를 넣는다는 등 응용을 여러가지 한다면 while 은 for 보다 더 편한 반복문이 됩니다. 동시에 while ( 1 ) 이라고 표기 하는 것만으로 무한 루프(무한 반복문)을 만들수 있으므로 매우 많이 쓰이게 되죠. 

 반복문을 2개 while 과 for을 알아보았습니다. 하지만 아직 무언가 부족합니다. 지금까진 조건을 검사후 실행하는 "선조건후실행" 방식의 반복문 밖에 없었습니다. 그렇다면 "선실행후조건" 방식의 반복문을 다음에 알아보도록 하겠습니다.