プログラミング言語Ⅰ・講義メモ

・p.74「List 4-1」から

p.74 do文(再掲載)

・繰返し構造を表す文で「●を行ってから、条件をチェックし成立していたら繰返す」構文
・書式: do { 繰返し内容; … } while (継続条件);
・継続条件を示す文が非0である間、繰返しを続ける
・よって、処理後に「もう一回?」とする場合に便利

p.74 list0401.cpp

//p.74 list0401.cpp
#include <stdio.h>
int main(void) {
    int retry; //再実行の入力用
    do {
        int no; //数値の入力用(繰返しの中でしか使わないのでここで定義)
        printf("整数を入力せよ:"); scanf("%d", &no); //案内を表示しキーボードから入力
        if (no % 2) { //2で割った余りが非0ならば
            puts("その数は奇数です。");
        } else {
            puts("その数は偶数です。");
        }
        printf("もう一度?【Yes…0/No…9】:"); scanf("%d", &retry); //案内を表示しキーボードから入力
    } while (retry == 0); //0が入力されたら繰返す(9かどうかはチェックしない)
    return 0;
}

自由参加課題:アレンジ演習:p.74 list0401.cpp

・3で割った余りで「その数を3で割ると余り1」「その数を3で割ると余り2」「その数は3で割り切れる」のどれかを表示するようにしよう。
・switch-caseを用いること

p.75 結合文内での宣言

・p.74 list0401.cppでは、利用する範囲=有効範囲に合わせて変数の宣言場所を工夫している
・変数noは繰返しの中で数値を入力し値に応じて表示したら、もう使わないので、繰返しの中で定義すると効率が良い
・また、誤って再利用してしまうことを防止できる

//p.74 list0401.cpp・悪い例
#include <stdio.h>
int main(void) {
    int retry; //再実行の入力用
    int no; //数値の入力用(繰返しの中でしか使わないのでここで定義)※ここはまずい
    do {
        printf("整数を入力せよ:"); scanf("%d", &no); //案内を表示しキーボードから入力
        if (no % 2) { //2で割った余りが非0ならば
            puts("その数は奇数です。");
        } else {
            puts("その数は偶数です。");
        }
        printf("もう一度?【Yes…0/No…9】:"); scanf("%d", &retry); //案内を表示しキーボードから入力
    } while (no == 0); //0が入力されたら繰返す(9かどうかはチェックしない)※ミスってる!
    return 0;
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です