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

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

> ひまわりでは、条件によって処理を分ける方法に、「もし」がありますが、もう１つ、？を使った条件分岐の方法があります。

> 書式：（条件）？ならば〜。違えば〜。

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

> `（りんごの値段<=９８｛円｝）？ ならば、「りんごを買う」と、言う。 違えば、「りんごを買わない」と、言う`。

> こんな具合です。

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

# 実用的？なプログラム

> まぁ、なんてお下品な・・・

> さて、あなたが、ひまわりを、使って、ゲームを作ったとします。しかも、うら若い乙女が、・・・するという、怪しいアドベンチャーゲームを作ってしまったとします。（しかも、実写？） そうなったら、プレイヤーが、１８歳以上であるか、チェックする必要があります。変な例ですが、その処理を書いてみます。

> `｛年齢チェックプログラム｝ 「１８歳以上ですか？」と、二択。｛←はい、いいえで、尋ねます｝ それ？ならば、「ゲーム続行」と、表示。 違えば、「ゲーム続行できません。」と、表示。`

> 競輪場にて・・・

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

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

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

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

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

> まぁ、当然のことなんですが、年齢チェックがあるものって、ロクなものがないですよね〜。

> 条件を重ねる

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

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

> 「ならば」の省略

> 以下のように、「ならば」を省略して書くことも、できます。ちょっと記号的な感じですが、分からなくもなく、入力の手間も省けるので、OKでしょう。

> （二人の愛　＞　１００｛％｝）？結婚する。　違えば、もう少し様子を見る。

戻る