第12章  if文


今回は、if文について述べます。これも、すでに 解説してありますので、さらっとさわりだけです。

if(条件式) { 条件式が正しい(真)時の実行内容; }else { 条件式が正しくない(偽)時実行する内容; }

という形式は、すでにご存知と思います。else以下は 無くてもかまいません。実行内容が、1つの文だけであれば カッコで囲まなくてもOKです。 では、適当なかけ算(九九)を出題して、ユーザーに 答えを入力させて、あっているかどうかを判定する プログラムを考えてみましょう。

まず、九九をランダムに出題するにはどうしたら よいでしょう。九九はA*Bの形をしており、AもBも 1桁の整数です。ランダムに数を作り出す関数は、 randというのがあります。この関数のプロトタイプは、 次のようになっています。

#include <stdlib.h> int rand(void);

戻り値として、0からRAND_MAXまでの整数の乱数を 返します。RAND_MAXは、VC++1.51の場合 0x7fff と定義されています。

0x7fffって、一体なんだ?

0xとは、次に来る数値が、16進数であることを示しています。 具体的に、この数字が10進数でいくつになるかは、 Windows95に付属の電卓で調べてみてください。 32767になるはずです。(電卓でこの計算のやり方が わからない人は、こっそり筆者にメールしてください。 こっそり教えてあげます。)

では、この関数を使って1桁の整数を作り出すには どうしたらいいのだ?

はい、わり算のあまりを使います。 ある数(整数)をN(整数)で割るとそのあまりは、 0,1,2,・・・,N−1になります。 したがって、ある数を10で割るとあまりは、 0から9までのいずれかの整数になるはずです。 これで、何となくわかってきましたね。 早速作ってみましょう。

まずは、インクルード文とmain関数を作ります。 変数a,b,cをこの位置に書くと、すべての 関数からa,b,cを参照することができます。 ここでは、3つの自作関数を作りましょう。 (関数名がダサイのでもっとカッコイイのにして ください)

while(何とか)というのは、 カッコの中の(何とか)というのが、真の間 次の{}ないを、繰り返し実行します。 この場合、かっこ内が1(真)なので 永久に{}内を実行します。

sakusei関数は、もうわかりますね。

input_answer関数は、ユーザーが99を入力すると 強制的に終了します。(exit)

hantei関数も、説明は不要ですね。

もうお気づきかもしれませんが、 void型で宣言した関数は、 return;でもどります。 処理系によっては、何も書かなくてよい 場合もあります。

今回は、簡単でした。暇な人は、上のプログラムを 改良して、何問中、何問正解か表示するように 作り替えてみてください。また、永久ループ の抜け方をもっとカッコイイ方法にしてみてください。


[Index][総合Index] [Previous Chapter] [Next Chapter]

Update Oct/26/1996 By Y.Kumei
当ホーム・ページの一部または全部を無断で複写、複製、 転載あるいはコンピュータ等のファイルに保存することを禁じます。