[C언어] 무한반복 while문

ET의 공부/C언어|2019. 12. 11. 21:11

안녕하세요. 이번 포스팅은 반복문인 while문에 관한 포스팅입니다. 읽어주셔서 감사합니다.

 

 

 

while 문은 표현식이 거짓 또는 0이 될 때까지 반복하는 루프를 수행합니다. 

while 문은 진입 조건 루프로서, 루프에 들어가기 전 루프에 들어갈 것인지(실행할 것인지) 결정합니다. 따라서 수행부터 루프를 실행하지 않을 수도 있죠.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
 
int main (void)
{
 
    while(0){
        printf("표현식이 거짓 일때 loop");
    }
    while(1){
        printf("표현식이 참 일때 loop");
    }
    return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

 

위의 코드의 결과는 printf("표현식이 참 일때 loop");에서 표현식이  일때 loop가 프로그램을 종료할 때까지 무한으로 반복됩니다.

차이점은 while(0) 과 while(1)인데요. C언어에서 0은 거짓 1은 참을 뜻합니다.

 

while(표현식){

     code;

}

위에서 말씀드렸듯 while은 거짓이 될 때까지 루프를 반복하게 됩니다.

그러면 while은 프로그램을 종료할때까지 반복만 하는 루프일까요? 아닙니다. 예를 들자면

 

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
 
int main (void)
{
    int i = 0;
    while(i < 5){
        printf("%d\n",i);
        i++;
    }
 
    return 0;
}

 

위와 같은 코드는 while(i < 5)로 검사 표현식을 사용하였습니다. while 루프가 비교를 수행할 때는 주로 검사 표현식을 사용하는데요

 

연산자  
< 작다
<= 작거나 같다
== 같다
>= 크거나 같다
> 크다
!= 같지 않다

 

while(i < 5)에 < 5는 i는 5보다 작다니깐 int i = 0;에서 초기화해준 i의 값 0은 참이 됩니다. 그리고 루프 안에 i++;로 인해 i가 증가가 되고

1,2,3,4까지 증가가 된 후 5가 되는 순간에는 i는 5보다 작지 않으니 거짓이 됩니다. 따라서 루프를 빠져나가게 됩니다.

댓글()