조건문에 이어서 반복문에 대해 알아보겠습니다.
C언어에서 반복문은 크게 while문 for문이 있습니다. 아마 두 개 다 파이썬에서도 들어보셨을 것입니다.
while 반복문
while 반복문의 경우 형태는 다음과 같습니다.
형태 | 설명 |
A; while (B) { 종속문장; C; } |
A: 초기식 B: 조건식 C: 변화식 초기식을 가지고 조건식을 비교하고 맞으면 종속절 실행 그리고 변화식을 거쳐 다시 조건식과 비교한다. 순서 A -> B -> 참 -> 종속절, C -> B -> 참 -> 종속절, C -> B -> 참 -> 종속절, C ...... -> B -> 거짓 -> while문 나옴. |
ex) int i = 0; while (i<5) { printf("i 값: %d \n", i); i++; } |
예시 |
while (1) { 종속문장; } |
이 경우 무한 루프가 일어남. |
한번 저 예시문장을 실행해서 보여드리겠습니다.
#include <stdio.h>
int main()
{
int i = 0;
while (i < 5)
{
printf("i 값: %d \n", i);
i++;
}
return 0;
}
위 코드를 가져와서 실행하면.
i의 값이 0부터 1씩증가하면서 4가 출력되었습니다.
5가 되었을때 조건식 i > 5 가 거짓이 되어, 출력되지 않고 반복문이 빠져나온 모습입니다.
그럼 이제 기본 예시를 알아보았으니, 좀 더 활용해보겠습니다.
while문 활용하기
먼저 기본적인 while 문을 활용해보겠습니다.
살면서 그런일은 없겠지만 코인이 복사가 된다고 생각해봅시다.
그렇게 가정을 하고 코인이 두배씩 매 회마다 복사가 되게 만들고 그 값이 1000이상이 넘어가면 반복문을 빠져 나오게 만들어보겠습니다.
#include <stdio.h>
int main()
{
int ETH = 1;
while (ETH < 1000)
{
printf("아니 코인이 복사가 된다니까??\n");
printf("현재 코인: %d\n", ETH);
ETH *= 2;
}
printf("\n이제 끝 과도한 욕심을 부리지 말자!!\n");
return 0;
}
코드를 다 짜봤습니다. 진짜 저렇게 코인이 복사가 되면 행복할 것 같습니다.
이제 실행을 해보겠습니다.
이렇게 수가 512까지 출력되고, 1024는 1000보다 크기에 출력되지 않고 반복문을 빠져나와.
마지막 문장이 출력되는 것을 확인 할 수 있습니다.
while 무한 반복문
이제 그럼 위에 반복문을 무한 반복하게 해보겠습니다.
코드는 다음과 같습니다.
#include <stdio.h>
int main()
{
int ETH = 1;
while (1)
{
printf("아니 코인이 복사가 된다니까??\n");
printf("현재 코인: %d\n", ETH);
ETH *= 2;
}
printf("\n이제 끝 과도한 욕심을 부리지 말자!!\n");
return 0;
}
while 조건식에 1(참)을 주어 조건식이 항상 옳게 만들었습니다.
이제 실행해보겠습니다.
이렇게 되면 코인이 무한 복사되면서 프로그램이 계속 실행됩니다.
(아마 수가 엄청 커져서 int 자료형(4byte)가 다 담아낼 수 없을 만틈 커져서 0이 출력되는 것 같습니다.)
while문에 대해 알아보았습니다. 이제 for문을 배우기 전에 do while 문에 대해 알아보겠습니다.
댓글