하루의 쉼터

[기초] while문 - 반복문 본문

프로그래밍/C언어

[기초] while문 - 반복문

Changun An 2019. 1. 7. 08:53
반응형

목표

l  why 왜 필요한가?

l  while에 대하여

l  사용법을 익혀본다.

 

사전적 의미로는 while : ~하는 동안.

 

참조 : 2019/01/03 - [프로그래밍/C언어] - [기초] if문 - 조건문


l  Why?

반복문은 언제 쓰며 왜 필요로 할까?

우리는 반복적으로 하는 것들이 있을 것이다

매일 밥을 식사를 하는 것, 매일 일해야 하는 것 등 다양한 행동을 반복적으로 이루어져서 한다.

프로그래밍도 마찬가지다. 같은 조건이나 행위를 반복해서 쓰는 경우가 생기게 된다.

이때 같은 문장이라면 똑같이 밑으로 나열하기 보다는 하나로 묶을 수 있으면 더욱 좋을 것이다.

따라서 반복문이라는 것이 존재하며 사용된다.


l  반복문 중 while은 아래와 같은 형식으로 제공된다.

그럼 조건문과 유사하지 않나? 할 수 있다. 

반복문은 조건문과 다르게 실행 내용을 완수하고 다시 조건으로 간다는 것이다.

조건문은 내용을 수행 하고 다음 문장으로 간다면,

반복문은 내용을 수행하고 다시 조건이 충족 되는지 확인한다.


조건은 어떠한 것들이 있을까? 

num>=5라는 것이 나올 수도 있고, 1과 0을 통해 참과 거짓을 구별해줄 수 있다.

따라서 while(1)은 무조건 참으로 계속해서 반복하는 무한 반복문을 만들어 줄 수 있다.

이와 같이 한다면 어떠한 결과를 나타낼까? 

1은 항상 참이므로 무한 반복을 하며 출력을 해줄 것이다.

이러한 형태로 출력된다. 언제까지? 사용자가 멈추거나 메모리가 오버 될때까지.


그럼 무한 반복문을 빠져 나오려면 어떻게 해야 할까?

앞서 배운 if문 조건문을 활용하여 break를 사용하면 된다.

 


1. int eat 라는 변수를 선언하여 밥을 먹는다 라고 가정을 하자.


2. while(1)이므로 내용을 수행한다.


3. 나는 배가 고프다라고 말을 한다.


4. eat++를 통해 밥을 먹는 과정을 나타내었다. eat의 초기값 0이 1로 변화한다. 


5. if문을 통해 위장 상태를 확인하고 배가 부른지 확인을 한다.

eat 는 아직 1이므로 조건문에 들어가지 않고 다음 명령이 없음으로 while로 다시 올라간다.


6. while은 참이다. 다시 내용을 수행하기 위해 배가 고픔을 알리고 다시 먹는다. 

eat는 2가 되고 다시 아래 내용을 확인한다.


7. 이러한 과정을 통해 eat가 3이 되면 if문을 통해 배가 부르다 라고 알리고 

break를 만나 반복문을 탈출 할 수 있게 된다.

반응형
Comments