先回は、if文を使った「数当てゲーム」のプログラムをご紹介した。
しかし、このプログラムでは、プレイヤーの数値入力が1回に限られているので、正解するまで何回もプログラムを起動しなくてはならない。
そこで、正解するまで繰り返し入力できるように改良しよう。
なお、本プログラムは、
Windows 11 Home(23H2)上で、 Visual Studio Code(1.92.2)を使用して作成し、gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0で コンパイルしている。
//数当てゲーム(第2版:do文)
#include <stdio.h>
int main(void)
{
int no; //読み込んだ値
int ans = 8; //正解
printf("0から9までの整数を当ててください!\n");
do
{
printf("いくつでしょうか:");
scanf("%d",&no);
if (no > ans)
printf("もっと小さいです。\n");
else if (no < ans)
printf("もっと大きいです。\n");
} while (no != ans);
printf("正解です\n");
return 0;
}
実行結果
0から9までの整数を当ててください!
いくつでしょうか:6
もっと大きいです。
いくつでしょうか:9
もっと小さいです。
いくつでしょうか:8
正解です
do文は、後判定繰返しによって処理を繰り返す。
do文
do 文 while (式);
doとwhileに囲まれた文はループ本体と呼ばれる。
( )内に置かれた式である制御式を評価した値が0でない限り、ループ本体は何度も繰り返し実行される。繰り返しが終了するのは、制御式を評価した値が0になったときである。
(参考)新・明解C言語 中級編 柴田 望洋(著)
コメント