next up previous contents
Next: 16. 配列 I Up: 15. 制御構造 II Previous: 15.2 判断

15.3 課題 15

cd c を実行した後で( ~/c に移動した後で)、以下の課題を やってみよ。

課題 15.1
while を使ってみる

以下のプログラムを while 文を用いて書き換えよ。

#include <stdio.h>
main()
{
    int i, sum=0;

    for (i=20; i>10; i--){
        sum += i;
    }
    printf("sum is %d\n", sum);
}

課題 15.2
switch 文を使ってみる

以下のプログラムを switch 文を用いて書き換えよ。

#include <stdio.h>

int GetInput(int);

main()
{
    int input, cont;

    while(1){
        fflush(stdin);
        printf("適当な数字を入力せよ。0 ならば終わり => ");
        scanf("%d", &input);
        cont = GetInput(input);
        if (cont==0){   break;  }
        printf("result %d\n", cont);
    }
}

int GetInput(int input){
    int result;

    if ( input == 1 ){
        result = 1;
    }else if ( input == 2 ){
        result = 2;
    }else if ( input == 3 || input == 4 ){
        result = 3;
    }else if ( input == 0 ){
        result = 0;
    }else{
        result = 4;
    }

    return result;
}

課題 15.3
ダンジョン・ゲーム II

課題 14.2 のプログラムを、switch, while を用いて、書き換えよ。 書き換えた箇所が含まれている関数全体をメイルで creport まで送ること。 但し、メイン関数を書き換えた場合は、 メイン関数を送ること。書き換えていない関数は、送らない事。 題は kadai15 とすること。

プログラム全体は大きいので、送らないこと!

前回の復習
while 文
繰り返し
while 文の書式は、次の通り。

    while ( 継続条件 ){
            文
    }

while 文は、常に以下の for 文と同じである。

    for ( ; 継続条件 ; ){
            文
    }

switch - case 文
条件分岐
switch - case 文の書式は、次の通り。

    switch ( 整数値の式 ){
        case 定数1: 文1;
        case 定数2: 文2;
        ...
        [default:   文n;]
    }

switch に続く整数値の式は、整数をとるものを用いなければならない。この式が、 とる値により、該当する case に指定した定数の後ろの文に実行が移る。 但し、その後は、switch を自動的に終わるのではなく、次の文に制御が移る。 従って、switch を終わらせたければ、明示的に break を用いなければなら ない。また、case に指定した定数のどれにも式の値が該当しない場合の 処理を行いたい場合には、default: を用いて、動作を記述する事が出来る。 勿論、default はなくても良い。

switch - case 文は、必ず if 文でも書くことが出来るが、逆は必ずしも出来るとは 限らない。

    switch ( 式 exp ){
        case 定数 n1:   文1; break;
        case 定数 n2:   文2; break;
        default:        文3; break;
    }

は、以下の if 文と同じ。

    if ( exp == n1){
        文1;
    }else if ( exp == n2 ){
        文2;
    }else{
        文3;
    }



Noriyo Kanayama