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