20140313 (while, do while, 중첩 while)

19일차

 

-----------------

제     어     문

(반     복     문)

-----------------

 

-------

while

-------

반복시키는 제어문이다.

while(조건) //조건이 참일 경우 아래 중괄호 실행, 거짓이면 탈출.

{

(명령문)

}

ex) 예제 소스코드

#include <stdio.h>

int main()
{
  int iNum = 0;

  while(5 > iNum)                   // 처음에 iNum이 0이므로 조건이 참이다
  {
    printf("Hello World! \n");
    ++iNum;                             // iNum을 증가시켜 1이 되고 다시 조건으로 올라가고
  }                                        // 조건이 거짓이 될 때까지 반복한다.

  return 0;
}

결과 화면

 

- 순서도

- while 문 조건은 참, 거짓으로 판별하기 때문에

참이면 1을, 거짓이면 0을 나타내므로

0을 제외한 나머지 값은 다 참으로 인식한다.

while1 )  // 조건이 계속 참이므로 무한 반복.
{
// 명령
}

while( -1 ) // 이것도 조건이 0이 아니니 참이므로 무한 반복
{
// 명령
}

while0 ) // 조건이 0이므로 거짓이므로
{             //  괄호 안에 명령은 절대로 실행되지 않는다.
// 명령(세계 정복)
}


------------

do while문

------------

while문과 똑같지만 하나가 다르다

while문은 조건을 검사하고 괄호 내용을 실행하지만

do while문은 우선 괄호 안을 먼저 실행하고 조건 확인 후

계속 실행할지 여부를 판단한다.

 

do

{

명령

} while(조건);

 

한가지 빼먹지 말아야 하는 것은 while(조건) 뒤에 꼭 " ; "을 붙여줘야 된다.

ex) 예제 소스 코드

#include <stdio.h>

int main()
{
  int iNum;
  int iTotal;

  iTotal = 0;
  iNum = 0;

  do
  {
    iNum = iNum + 2;
    iTotal = iTotal + iNum;
  } while(100 > iNum);

  printf("%d \n", iTotal);

  return 0;
}

결과 화면

  2550 

 

또 생각해야 할 것이 while문과 다르게 먼저 실행을 한 번하고 나서 반복하니

조건을 기입할 때 한 번 실행했다는 것을 생각하고 조건을 대입해야 한다.

 

-----------

중첩 while

-----------

while 문을 중첩 시킨 것인데 음....

그냥 밑에 예제를 보자.

#include <stdio.h>

int main()
{
  int iCnt1;
  int iCnt2;

  iCnt1 = 0;

  while(5 > iCnt1)
  {
    iCnt2 = iCnt1;

    while(0 < iCnt2)
    {
      printf("O");
      --iCnt2;
    }

    printf("* \n");
    ++iCnt1;
  }

  return 0;
}

출력 화면

필요에 따라 몇 번이고 중첩 시키면 되는데

중첩을 시키면 시킬수록 헷갈리게 되니 생각을 잘해서 쓰는게 좋겠다.

 

 

 

 

오늘 배운 마지막은 순서도인데 아까 위에서 보았던 그것이다.

나중에 쓸 일이 생길거라고 꼭 알아두시라고 알려주셨다

순서도를 소스코드로 만들 줄 알아야 하고

소스코드도 순서도로 만들 줄 알아야 한다.

작성하기 쉬운 프로그램으로는 엑셀과 파워포인트이고

여기서 작성한 도형들?을 복사해서 그림판에 그대로 붙여 넣을 수 있다.

예제)

 

 

 

 

 

 

 

 

 

 

설정

트랙백

댓글