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

p.76 読み込む値を制限する

・do-while構文の活用例の代表的存在
・適切なデータが得られるまで先に進まない場合に便利

p.76 list0402.cpp

//p.76 list0402.cpp
#include <stdio.h>
int main(void) {
    int hand; //手の入力用
    do {
        printf("手を選んでください【0…グー/1…チョキ/2…パー】:"); 
        scanf("%d", &hand); //案内を表示しキーボードから入力
    } while (hand < 0 || hand > 2); //適切な手が入力されていない間、繰返す
    printf("あなたは");
    switch (hand) { //手に応じて分岐
    case 0: printf("グー");   break;
    case 1: printf("チョキ"); break;
    case 2: printf("パー");   break;
    }
    printf("を選びました。\n");
    return 0;
}

p.77 論理否定演算子

・条件式を反転したい場合に用いる単項!演算子で、0を得ると1を、非0を得ると0を返す
・例: int a = 9, b = !a; //bには0が代入される
・このことを応用して、長い条件式をわかりやすく反転したい場合に用いる
・例: !(hand >= 0 && hand <= 2) //「手が0以上2以下」ではない=正しくない

アレンジ演習:p.76 list0402.cpp

・上の例を用いて書き換えよう

作成例

//アレンジ演習:p.76 list0402.cpp
#include <stdio.h>
int main(void) {
    int hand; //手の入力用
    do {
        printf("手を選んでください【0…グー/1…チョキ/2…パー】:"); 
        scanf("%d", &hand); //案内を表示しキーボードから入力
    } while (!(hand >= 0 && hand <= 2)); //【変更】適切な手が入力されていない間、繰返す
    printf("あなたは");
    switch (hand) { //手に応じて分岐
    case 0: printf("グー");   break;
    case 1: printf("チョキ"); break;
    case 2: printf("パー");   break;
    }
    printf("を選びました。\n");
    return 0;
}

コメントを残す

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