ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [C Language] 18. do ~ while 문 - C 언어
    CSE/C Language 2015. 6. 13. 10:16

    1. 사용방법

     do ~ while의 형식은 아래와 같다.


     형  식

    예  제 

     do 수행문;

     while (조건식);

    int num = 1;


    do printf("num = %d\n", num++);

    while (num != 1024); 

     do {

    수행문;

    수행문;

    ...

     } while (조건식);

    do {

    puts("=== menu === ");

    puts("1. 짜장면");

    puts("2. 짬뽕");

    scanf("%d", &num);

    ...


    } while (num != 0); 


    do while문은 while문과 달리 조건식을 먼저 검사하지 않고, 수행문을 한 번 실행 후 조건식을 검사하는 반복문이다.


    실질적인 do ~ while문 예제를 살펴보자.



    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    /*
     * menu.c
     *
     *  Created on: 2015. 5. 12.
     *      Author: root
     */
     
    #include <stdio.h>
     
    int main(void) {
     
        int menu_num;
     
        do {
            puts("\nMenu List");
            puts("1. Ramen");
            puts("2. KimBab");
            puts("3. Bulgogi");
            puts("4. Exit");
     
            printf("\nSelect Menu:");
            scanf("%d", &menu_num);
     
        } while (menu_num >= 1 && menu_num <= 3);
     
        return 0;
    }
    cs











     do ~ while은 일반적으로 메뉴를 출력하고 처리할 때 많이 사용된다. 메뉴를 출력하고 사용자에게 선택권을 부여한 후 지정한 값을 처리 할 때 유용하다. 

     만약 while 문을 통해 작성 했을 경우, scanf를 두 번 작성해야 하는 번거로움이 있다.




    다음은 itoa() 기능을 하는 프로그램을 작성해서 살펴보자.


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    /*
     * itoa.c
     *
     *  Created on: 2015. 5. 12.
     *      Author: root
     */
     
    #include <stdio.h>
     
    int main(void) {
     
        int num, int_num;
        char string_num[10];
     
        puts("Input num (> 10).");
        scanf("%d", &int_num);
     
        num = int_num;
     
        int i, j, tmp;
     
        i = 0;
     
        do {
            string_num[i++= int_num %10 + '0';
        } while ((int_num = int_num / 10> 0);
     
        string_num[i] = '\0';
     
        for (i = 0, j = strlen(string_num) - 1; i < j; i++, j--) {
            tmp = string_num[i];
            string_num[i] = string_num[j];
            string_num[j] = tmp;
        }
     
        printf("Input number is %d.\n", num);
        printf("Converted string is %s.\n", string_num);
     
        return 0;
    }
    cs









    * Programming in C 서적을 참고하여 작성하였습니다 


    댓글

Designed by Tistory.