# 条件によって処理を分ける、もし

今回勉強する「もし」が使えるようになれば、貴方のプログラムの幅は、ぐーんと、広がるでしょう！
「もし」は、条件によって、プログラムの処理や動作を、変えることができます。

## もし

> もし、もし、カメよ、カメさんよ〜童話をプログラムでシミュレーションする

> 「もし」という命令を使うと、条件が正しいとき、正しくないときの２つに、処理を分けることが出来ます。
> 「もし」の書式は、

> もし、○○が、○○（以上｜以下）ならば、（正しいときの処理）。 違えば、（正しくない時の処理）。

> と、なります。（違えばは、省略が可能）
> あの、有名な童話を、プログラムにするならば・・・

> `カメの速さ＝｛時速｝100｛ｍ｝ ウサギの速さ＝｛時速｝500｛ｍ｝ もし、カメの速さが、ウサギの速さ以上ならば、「カメの勝ち」と、言う。 違えば、「ウサギの勝ち」と、言う。`

> このプログラムでは、カメとウサギの時速を比較しているだけで、ウサギが休憩するということを、考慮にいれていない為、結果、必ず、ウサギが勝ってしまいます。

> | 次に、ウサギと、カメの、競争するコースの距離を設定して、ウサギとカメの走行時間より、勝負を決定するプログラムを書いてみましょう。怠惰なウサギは、途中で、何時間か休憩するという、童話通りのシミュレーションです。

> `カメの速さ＝｛時速｝100｛ｍ｝ ウサギの速さ＝｛時速｝500｛ｍ｝ コース距離＝600｛ｍ｝ ウサギの休憩時間＝５｛時間｝ ｛走行時間の算出｝ カメの時間＝コース距離÷カメの速さ ウサギの時間＝コース距離÷ウサギの速さ＋ウサギの休憩時間 「カメは、｛カメの時間｝時間かかった」と、言う。 「ウサギは、｛ウサギの時間｝時間かかった」と、言う。 もし、カメの時間が、ウサギの時間以下ならば、「カメの勝ち」と、言う。 違えば、「ウサギの勝ち」と、言う。`

> さすがに、５時間もウサギが休憩していると、カメが勝ちますね。

> | 上の例で見た通りなんですが、カメと、ウサギの比較する値が、変わると、実行するプログラムの処理を、変えることが出来るというのが、ポイントです。 試しに、カメの速さ、ウサギの速さ、コースの距離、ウサギの休憩時間などの、数値部分を、変更してみると、最終的な結果（ウサギが勝つか、カメが勝つか）が、変わるので、動作がよく分からない人は、納得がいくまで、数値をいじってみてください。

> ユーザーとのコミュニケーション

> ソフトの利用者に、数字を入力してもらって、その値に従ってプログラムを動かす場合があります。
> そんなときにも、「もし」が、活躍します。
> 以下のプログラムは、ユーザーが入力した財布の中身の金額に応じて、買うことの出来る商品を表示します。

> `「財布の中身はいくら？」と、尋ねる。 もし、それが、１０｛円｝以上ならば、「１０円チョコが買えるね」と、表示。 もし、それが、１２０｛円｝以上ならば、「ジュースが飲めるね」と、表示。 もし、それが、５００｛円｝以上ならば、「牛丼が食べれるね」と、表示。 もし、それが、１０００｛円｝以上ならば、「ランチが食べれるね」と、表示。 もし、それが、３０００｛円｝以上ならば、「お寿司が食べれるね」と、表示。`

> 数当てゲーム
> コンピューターの考えた数字を、ユーザーが言い当てるという、至極単純なゲームを作ってみましょう。
> この、数当てゲームっていうのが、単純であるが故に、面白くて病み付きになってしまうんです。

> `３回（ 正解＝乱数（３の）＋１｛１〜３までの適当な数を得る｝ 「１から３までの数字を入力」と、尋ねる。 もし、それが、正解ならば、「当たり」と、言う。 違えば、「はずれ。答えは、｛正解｝だった」と、言う。 ）。`

戻る