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


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

ひまわりの条件分岐 その2
ひまわりでは、条件によって処理を分ける方法に、「もし」がありますが、もう1つ、?を使った条件分岐の方法があります。
書式: (条件)?ならば〜。違えば〜。
 例えば、買い物をするためにスーパーへ行ったとして、りんごが、1個、98円より安かったなら、りんごを買うことにして、それより高かったら、買うのはやめよう、という状況を、プログラムにしてみましょう。
りんごの値段<=98{円})?
    ならば、「りんごを買う」と、言う。
    違えば、「りんごを買わない」と、言う
こんな具合です。
(条件)?の中に書ける条件は、以下のいずれかです。
(あ=い)? ・・・ あが、いと、等しい場合
(あ<>い)? ・・・ あが、いと、等しくない場合
(あ>い)? ・・・ あが、いより、大きい場合
(あ>=い)? ・・・ あ、いと、等しいか、大きい場合
(あ<い)? ・・・ あが、いより、小さい場合
(あ<=い) ・・・ あが、いと、等しいか、小さい場合

実用的?なプログラム

まぁ、なんてお下品な・・・
 さて、あなたが、ひまわりを、使って、ゲームを作ったとします。しかも、うら若い乙女が、・・・するという、怪しいアドベンチャーゲームを作ってしまったとします。(しかも、実写?)

 そうなったら、プレイヤーが、18歳以上であるか、チェックする必要があります。変な例ですが、その処理を書いてみます。
{年齢チェックプログラム}
「18歳以上ですか?」と、二択。{←はい、いいえで、尋ねます}

それ?ならば「ゲーム続行」と、表示。
   違えば「ゲーム続行できません。」と、表示。 
競輪場にて・・・


 また、高校生の頃、学校の近くに、競輪場がありまして、私の悪友はよく、年齢を偽ってギャンブルに身を落としていました。
 その時、競馬場で、年齢検査をするのに、よく使われていたのが、まず、年齢を尋ね、その後に、「生まれた年を言ってみろ!」という、検査でした。もし、間髪いれずに正しく答えられるようなら、合格、そうでなければ、追い出されるというものだったそうです。
 悪友達は、予め、20歳になったつもりで、西暦を計算し、競輪場へ通ったそうです。(さすが、進学校の生徒です。抜かりが無い。)
 そういうわけで、効果のほどは、確かではありませんが、この年齢チェックを、ひまわりで、作ってみましょう。
{年齢チェックプログラム2}
今年{西暦}2001{年}{←年が変わったら変えてね。}
「君、今年で、何歳になるの?」と、尋ねる。
年齢それ。
「生まれた年は?」と、尋ねる。
生まれた年それ。
(今年−年齢)=生まれた年
      ならば「ご来場ありがとうございます」と、言う。
      違えば「大人になってから、来てね!さようなら。」と、言う。
おわり。 

 まぁ、当然のことなんですが、年齢チェックがあるものって、ロクなものがないですよね〜。 
条件を重ねる
 繰り返しの時にも、出てきましたが、条件をネスト(多重構造)にするには、ならば、違えば、の、すぐ後に、丸カッコ()を書きます。

 以下は、うるう年の判定プログラムです。

うるう年かどうかを判定するには、
  1.400で割り切れる年は、うるう年
  2.100で割り切れる年は、うるう年ではない
  3.上記以外で、4で割り切れるときは、うるう年
  4.上記以外で、4で割れない年は、うるう年ではない
の条件をチェックします。
{うるう年の判定プログラム}

「西暦の入力」と、尋ねる。

(それ%400=0)ならば、「うるう年だ」と、言う。
違えば(
  (それ%100=0)ならば、「うるう年でない」と、言う。
  違えば(
    (それ%4=0)ならば、「うるう年だ」と、言う。
    違えば、「うるう年でない」と、言う。
  )。
)。
「ならば」の省略
 以下のように、「ならば」を省略して書くことも、できます。ちょっと記号的な感じですが、分からなくもなく、入力の手間も省けるので、OKでしょう。
二人の愛 > 100{%})?結婚する。 違えば、もう少し様子を見る。

戻る