[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)에 i < 5는 i는 5보다 작다니깐 int i = 0;에서 초기화해준 i의 값 0은 참이 됩니다. 그리고 루프 안에 i++;로 인해 i가 증가가 되고
1,2,3,4까지 증가가 된 후 5가 되는 순간에는 i는 5보다 작지 않으니 거짓이 됩니다. 따라서 루프를 빠져나가게 됩니다.
'ET의 공부 > C언어' 카테고리의 다른 글
[C언어]조건문 if와 else 사용하기 (0) | 2019.12.19 |
---|---|
[C언어] do while 문 (0) | 2019.12.11 |
[C언어] 반복문 for문 루프, for문 콤마(,)연산 (0) | 2019.12.10 |
[C언어] 대입연산자 +=, -=, *= , /=, %= (0) | 2019.12.04 |
[C언어] 데이터형 바꾸기 캐스트 연산자 (0) | 2019.12.03 |
댓글()