ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 20140313 (while, do while, 중첩 while)
    부산IT학원/스마트컨트롤러 2014. 3. 13. 17:46

    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;
    }

    출력 화면

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

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

     

     

     

     

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

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

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

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

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

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

    예제)

     

     

     

     

     

     

     

     

     

     

Designed by Tistory.