반복문은 여러번 실행하기 입니다. 반복문 중의 하나인 while문에 대해 알아보겠습니다.
1. while문 구조
조건이 '참'인 경우 반복적으로 { } 안의 문장을 실행시킬 경우 while문을 사용합니다.
while문의 구조는 다음과 같습니다.
while(...)
{...}
while문을 실행하게 되면 먼저 (…) 안에서 조건을 판단합니다. 이 조건이 '참(true)'이면 {…}를 실행합니다. 그리고 다시 (…)로 돌아와 또다시 조건을 판단합니다. 또 '참'이면 {…}을 또다시 실행해요. 이렇게 (…)의 조건이 성립되는 한 {…}은 계속 실행이 되다가 (…)이 '거짓(false)'가 되면 반복문을 빠져나옵니다. 예제를 보겠습니다.
#include <stdio.h>
int main(void)
{
int count = 0;
while(count<5)
{
printf("count is %d\n", count);
count++;
}
printf("while loop end\n");
return 0;
}
실행결과
count is 0
count is 1
count is 2
count is 3
count is 4
while loop end
계속하려면 아무 키나 누르십시오 . . .
위 코드를 봅시다. 코드에서는 int count = 0;
에서 count를 선언과 동시에 0으로 초기화 시킵니다. 이어서 while문으로 진입합니다. 현재 count == 0 이기 때문에 조건이 만족되고 { }안의 문장이 실행이 되면서 count값을 출력하고 count값을 1 증가시킵니다. 그럼 count는 1이 되고 다시 count<5의 논리연산을 합니다. 1<5는 '참'이기 때문에 또다시 { }안의 문장이 실행됩니다. 이런식으로 반복이 되다가 count가 4일 때 까지 출력이 됩니다. 이후 5가 되면 그럼 5<5는 '거짓'이 되어 반복문을 빠져나와서 while loop end 라는 문장을 출력하고 프로그램이 종료됩니다.
while문의 실행 순서는 다음 그림과 같습니다.
~~~ c
while(1)
while(a > 0 || a<=0)
위의 코드 처럼 항상 '참'일 수 밖에 없는 명제를 넣는다면 while문은 끝나지 않습니다. 이런 상황을 무한루프에 빠졌다고 표현합니다. 혹시나 무한루프에 빠져 커맨드 창에서 프로그램이 멈추지 않는다면 Ctrl + C 를 눌러 강제종료 시킬 수 있습니다.
<br>
## 2. 중첩 while문
* * *
while문은 여러 번 겹쳐 사용하는 것, 즉 중첩도 가능합니다. 중첩 while문을 통해 별그리기를 해보겠습니다.
c
#include
int main(void)
{
int cnt1 = 1;
int cnt2 = 1;
while(cnt1<5)
{
cnt2 = 1; //cnt2를 초기화 시켜 다시 1부터 cnt1 까지 별표의 갯수를 조정
while(cnt2<=cnt1)
{
printf("*");
cnt2++; //cnt2를 1씩 증가시켜 cnt1과 같아질 때 까지만 별표 출력
}
printf("\n"); //줄 변경
cnt1++; // cnt1을 증가시켜 다음 층의 총 별표 갯수 증가
}
return 0;
}
~~~
위 예제는 반복문을 배울 때 자주 나오는 별 그리기 입니다.
출력결과
*
**
***
****
*****
계속하려면 아무 키나 누르십시오 . . .
'프로그래밍 언어 > C' 카테고리의 다른 글
(C언어) 14 - 반복문(3) - do while (0) | 2020.05.14 |
---|---|
(C언어) 13 - 반복문(2) - for (0) | 2020.05.14 |
(C언어) 11 - scanf 함수 (0) | 2020.05.14 |
(C언어) 10 - 연산자 (0) | 2020.05.14 |
(C언어) 9 - 2진수와 16진수 (0) | 2020.05.14 |