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

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

> ひまわりの条件分岐その２

> 前ページで見た「もし」ですが、もう少し、突っ込んだ使い方をしてみましょう。

> 書式：もし、（条件）ならば〜。違えば〜。

> 例えば、買い物をするためにスーパーへ行ったとして、りんごが、１個、９８円より安かったなら、りんごを買うことにして、それより高かったら、買うのはやめよう、という状況を、プログラムにしてみましょう。

> `りんごの値段は、９０｛円｝ もし、りんごの値段　＜＝　９８｛円｝ ならば、「りんごを買う」と、言う。 違えば、「りんごを買わない」と、言う。`

> こんな具合です。

> （条件）の中に書けるのは、以下のいずれかです。
> あ＝い | あが、いと、等しい場合
> あ≠い　または　あ＜＞い | あが、いと、等しくない場合
> あ＞い | あが、いより、大きい場合
> あ≧い　または　あ＞＝い | あ、いと、等しいか、大きい場合
> あ＜い | あが、いより、小さい場合
> あ≦い　または　あ＜＝い | あが、いと、等しいか、小さい場合

# 実用的？なプログラム

> 夢も希望も、バナナ次第・・・

> | 小学生のころ、遠足のお菓子は、２００円までと、決められていました。 そして、そこで、必ずと言っていいほど、話題になるのが、 「バナナは、お菓子として、２００円の中に数えるのか？」 と、いうことです。 そこで、これを、お菓子として扱うかどうかで子供たちが、実際に買えるバナナ以外の金額を計算してみましょう。

> `｛遠足バナナチェックプログラム｝ お金は、２００｛円｝ バナナ金額は、４０｛円｝ 「バナナはお菓子ですか？」と、二択。｛←はい、いいえで、尋ねます｝ もし、それが、はいならば、お金＝お金−バナナ金額｛注１｝ 「お菓子は、｛お金｝円分使えます」と、言う。`

> 競輪場にて

> 高校生の頃、学校の近くに、競輪場がありまして、私の悪友はよく、年齢を偽ってギャンブルに身を落としていました。

> その時、競馬場で、年齢検査をするのに、よく使われていたのが、まず、年齢を尋ね、その後に、「生まれた年を言ってみろ！」という、検査でした。もし、間髪いれずに正しく答えられるようなら、合格、そうでなければ、追い出されるというものだったそうです。

> 悪友達は、予め、２０歳になったつもりで、西暦を計算し、競輪場へ通ったそうです。（さすが、進学校の生徒ですね。抜かりが無い。）

> そういうわけで、効果のほどは、確かではありませんが、この年齢チェックを、ひまわりで、作ってみましょう。

> `｛年齢チェックプログラム｝ 今年＝｛西暦｝２００１｛年｝。｛←年が変わったら変えてね。｝ 「君、今年で、何歳になるの？」と、尋ねる。 年齢＝それ。 「生まれた年は？」と、尋ねる。 生まれた年＝それ。 もし、（今年−年齢）＝生まれた年 ならば、「ご来場ありがとうございます」と、言う。 違えば、「大人になってから、来てね！さようなら。」と、言う。`

> 遠足で競輪場へ？

> だいたいにして、競輪場が作れるような町は、そこそこ地価が安く、競輪場の近くに、大きな池のある公園があったりします。そこで、生徒を引率する先生方は、遠足の場所を決めるとき、喜んで、この公園を選んでいました。生徒には、公園で遊ばせておいて、自分たちは、隣の競輪場で一儲けして、遠足の二次会（打ち上げ会）の費用を稼ぐんです。

> そういうわけで、必死に競輪に打ち込むわけですが、もし、負けてしまったら、二次会の会場は、ラーメン屋、費用は自己負担。もし、買ったなら、二次会の会場は、すし屋、費用は、競輪で買った金から、ということになります。

> では、これを、ひまわりのプログラムにしてみましょう。

> `｛二次会のシミュレーション（５人くらいで計算）｝ 「競輪で勝った金額は？」と、尋ねる。 収入は、それ。 もし、それ >= 40000{円} ならば、（会場は、「すし屋」。費用は、40000｛円｝）。 違えば、（会場は、「ラーメン屋」。費用は、8000｛円｝）。 支出＝費用 - 収入。 ワリカン＝整数（支出÷５） 「会場は ｛会場｝、負担は ｛支出｝円（５人だと１人｛ワリカン）｝円）」と、表示。`

> ここで、「ならば」と、「違えば」の、後ろの「（・・・）」の部分に注目してください。
> 普通、「ならば」「違えば」の後ろには、１つの文しか書けないことになっているのですが、こうして、（ ）で、複数の文を囲むことによって、１つ以上の文を書くことが出来ます。

> 条件を重ねる

> 繰り返しの時にも、出てきましたが、条件をネスト（多重構造）にするには、ならば、違えば、の、すぐ後に、丸カッコ（）を書きます。
> 以下は、うるう年の判定プログラムです。
> うるう年かどうかを判定するには、
> １．４００で割り切れる年は、うるう年
> ２．１００で割り切れる年は、うるう年ではない
> ３．上記以外で、４で割り切れるときは、うるう年
> ４．上記以外で、４で割れない年は、うるう年ではない
> の条件をチェックします。

> `｛うるう年の判定プログラム｝ 「西暦の入力」と、尋ねる。 もし、それ％４００＝０ならば、「うるう年だ」と、言う。 違えば（ もし、それ％１００＝０ならば、「うるう年でない」と、言う。 違えば（ もし、それ％４＝０ならば、「うるう年だ」と、言う。 違えば、「うるう年でない」と、言う。 ）。 ）。`

> 数当てゲーム改
> 前回作った数当てゲームをちょっと改良して、正解率を表示することで、よりゲームをスリリングにしてみました。

> `｛数当てゲーム｝ 正解数＝０ 「５回勝負。」と、言う。 ５回（ ２の、乱数。｛０〜１の乱数を、「それ」に得る｝ 正解は、それ。 ’ユーザーからの入力 「半（はい）か丁（いいえ）か？」と、二択。 もし、それが、はいならば、解答＝１。違えば、解答＝０。 ’正解かどうか判定する もし、解答が、正解ならば（ 「当たり」と、言う。 正解数＝正解数＋１。 ）。 違えば、「はずれ。」と、言う。 ）。 ’正解率の計算 正解率＝整数（（正解数÷５）×１００） 「正解率は、｛正解率｝％」と、言う。`

> ゲーム改造のヒント

> > ゲームを、さらに、面白くするには、どうしたら良いでしょうか？
> > - 掛け金を設定できるようにする
> > - 二人同時プレーができるようにする
> > - カジノの雰囲気を演出する（絵をつける、音をつける）
> > ぜひ、改造して、血肉踊るゲームに、仕上げてみください。

戻る