#7. 반복문 - while문

2009. 8. 25. 15:52STUDY !/배워보자 C언어

  콘솔 입출력에 대한 내용은 충분히 이해하고 실습해봤는가!?
  컴퓨터하고 대화도 못하고 무슨 프로그래밍을 한다고 설치겠는가!? 대화가 가장 기본이다.
  입출력에 대한 내용은 충분히 공부 했다고 믿고 다음으로 넘어간다.

  이제부터 배우기 시작할 내용은 반복문이다. 반복문에는 for문, while문, do-while문 등이 있다.

  제일 처음으로, 가장 간단한 구문인 while문에 대해서 알아보자!

[ 구  조 ]

while( /*조건문*/ )
{
    /* 반복할 내용*/
}

-

끝이다.




ㅋㅋ 썰렁하니 더 얘기 해보자

  while에는 '~하는 동안'이라는 뜻이 있다. 옆에 있는 괄호내용까지 곁들여서 해석해보면, '조건문이 참인 동안' 이라는 뜻이된다!! 참이라는게 어디서 튀어나왔는지는 묻지 말라. 다친다-_-;; 어쨌든 조건문이 참이면 while문이 동작한다는 말이다. while문의 동작 과정을 살펴 본 후에 예를 들어보자~

[ 동작 과정 ]
1_ while과 조우 >> 반복해야겠다는 의지가 생김
2_ 조건문 확인 >> 반복을 해야하는지 확인
3_ while문의 코드 실행
4_ 다시 조건문으로 돌아감 >> 또 반복해도 되는지 확인
5_ while문의 코드 실행
6_ 4,5과정을 무한반복
7_ 만약 조건문이 거짓이 되면 while문을 건너뛰고 다음코드 실행


Ex_1)
{
1   int i = 0;
2
3   while( i < 10 )
4   {
5        printf("%d",i);
6   }
}

  이 예제는 i 가 10보다 작을때 i의 값을 출력하는 반복 문이다. 하지만, 이 코드에는 문제가 있다. 무엇이 문제일까? 찾아보도록!!!

  반복문에서 조건은 한번 설정하면 실행되는 과정에서 바꿀 수 없기 때문에 문제가 발생하기 쉽다. 조건문이 항상 참이 되어버리면, 일명 '무한 루프' 라는 상황이 발생하게 된다.
 /* 무한 루프란, 반복문이 종료되지 않고 끊임없이 반복하는 상황을 일컫는 말이다. */
때문에, 반드시 while문 내에서 조건문에 사용되는 변수가 계속 바뀔 수 있도록 제어를 해주어야 한다. 코드를 수정해보자

Ex_1-2)
{
1   int i = 0;
2  
3   while( i < 10 )
4   {
5        printf("%d",i);
6        i = i + 1;
7   }

  이제 이 프로그램은 i를 0부터 9까지 출력하고 종료될 것이다.
/* TIP!! [ i = i + 1 ] 은 i++나 ++i로 짧게 줄여쓸 수 있다. -도 마찬가지로 [ i = i - 1 ]은 i--나 --i가 된다. 자세한건 나중에 다시 설명하자. */

너무나 당연한 이야기 이지만, 처음 while문을 만나서 조건을 확인했는데, 조건이 거짓이었다면 while문은 실행되지 않는다. 또한, 세미콜론에 대한 압박감을 너무 많이 가진 나머지 while(); 와 같이 적었다면 while문은 조건확인과 반복만을 반복하고, while문에 포함된 코드는 while문이 종료된 다음에 실행 될 것이다. /* 보통은 무한루프에 빠지게 된다. 조건을 제어하지 못하기 때문에다. */

while문을 연습해보라~!
연습할 거리를 주겠다.
while문을 중복사용해서 구구단을 출력하는 프로그램을 만들어보라라라라라라라라라라라라라라라라라라라

/*
  중복사용

while()
{
    while()
        {

        }
}

와같은 형태로, 실행 순서는 이해할 수 있으리라 믿는다. 첫번째 while문이 1번 실행되는 동안 두번째 while문은 조건이 끝날때까지 실행 된다.
*/


반응형

'STUDY ! > 배워보자 C언어' 카테고리의 다른 글

#9. 반복문 - for문  (0) 2009.08.27
#8. 반복문 - do-while문  (2) 2009.08.26
#6. 화면 입력함수  (0) 2009.08.24
#5. 화면 출력함수  (0) 2009.08.21
#4. 문장의 구성요소  (0) 2009.08.20