
しょぼいコードを書いてみる…初歩的な対話プログラムの作成(C言語)~亀歩戦術日誌015~
こんにちは。こいずみりくです。
現在、プログラミングの学習をしている。
前回作ったプログラムは、ネットにあったサンプルを殆ど丸写ししたものだった。今回は、しょぼいながら自分で考えて書いたプログラムだ。
動作のようす
プログラムを作動させると、「カメは好きですか」と尋ねてくる。

ユーザは「y(Yes)」か「n(No)」の二択で回答する。カメが嫌いな人はこの世にいないと思うが、試しに「n」を入力してみる。

プログラムは泣いてしまった。でも、めげずに再度同じ質問をしてくる。実は、「n」と答える限り永遠に質問をやめない仕様になっている。
なので、正直に「y」と答えてみよう。

そうすると、プログラムとお友達になることができる。これでプログラムは終了だ。
使った構文
とても簡単な挙動のプログラムだが、いくつかの基本的な構文を使っている。
列挙すると、画面への文字列の出力、ユーザからの入力受付、if文による条件分岐、for文によるループとbreak文によるループからの脱出などだ。
ちなみに、ユーザからの入力は最初は「y」などの1文字のみ受付けていたが、「yes」などのようにユーザが誤って数文字入力すると挙動がおかしかったため、文字列で受付けて最初の1文字のみ読み取るように工夫した。
コード
プログラムのコードはC言語を用いて書いた。20行弱のコードになった。
(注意)下記に掲載のコードの動作保証はいたしません。下記のコードを使用して不具合等が生じても責任は負いかねます。あくまでプログラミング初心者による生成物である点をご承知願います。
#include <stdio.h>
int main (void){
char n[80];
for (;;) {
printf("カメは好きですか(y/n)\n");
gets(n);
if (n[0] == 'Y' || n[0] == 'y')
break;
printf("ぴえん…\nもう一度聞きますね。\n");
}
printf("お友達になりましょう!\n");
return 0;
}
あとがき
次回は、今回作ったコードを転用して計算練習プログラムを作成する。
お知らせ。下記にて匿名での質問やメッセージを受け付けております。先日、ようやく1通届きました。
頂いたメッセージは、記事内で紹介することがございます。