今度は、条件によって実行するプログラムを変更するという構文を覚えましょう。これは、『もし、xxがxxならば~違えば~』というものです。『もし~ならば~』は日常生活でも使うので分かりやすいと思います。例えば、『もし、天気がよければ洗濯物を干す』などのように使うのです。
それでは、実際にプログラムを動かして、『もし~ならば~』の構文の使い方を覚えましょう!以下は簡単ななでしこのプログラムです。説明しなくてもどのように動くか分かるのではないでしょうか。
一応結果を書いておくと、一行目で『天気は「晴れ」と書いているので、「洗濯物を干す」と表示されます。次に、これはどうでしょうか?
さっきと一行目が違うだけです。ですが、表示結果は「洗濯物は干さない」となります。
次に年齢について考えてみます。日本では法律で年齢が20歳未満の場合、未成年の喫煙や飲酒も禁止されていますね。ちなみに、国によってこの規定年齢が異なるって知っていますか?例えばマレーシアでは2017年以前は18才から飲酒OKだったんですが、現在は21才以上になったんです。
ここでは、コンビニの店員ロボットを作ったとしましょう。若者がビールを買おうとしたら年齢を尋ねて20歳未満なら「売りません!」と表示するプログラムです。
上のプログラム実行して18を入力すると「ビールは売りません!」と表示されれば実験成功です。
条件に数値を指定した場合をみましたので、ここで条件として指定できる式や演算子についてまとめておきます。
日本語的な指定 | 条件式 | 利用例 |
---|---|---|
AがB以上 | A≧B | もし、年齢が20以上ならば |
AがB以下 | A≦B | もし、人数が30以下ならば |
AがB超 | A>B | もし、人数が200超ならば |
AがB未満 | A<B | もし、年齢が20未満ならば |
AがBと等しい | A = B | もし、年齢が20と等しいならば |
AがBと等しく無い | A ≠ B または A != B | もし、年齢が20と等しく無いならば |
その他に計算に使う不等号も利用できます。
条件 | 利用例 |
---|---|
A>B | もし、年齢>20ならば |
A<B | もし、年齢<20ならば |
A≧B または A >= B | もし、年齢≧20ならば |
A≦B または A<=B | もし、年齢≦20ならば |
さて、今度はもっと条件が複雑な場合のプログラムをつくっていきます。例えば閏年(うるうどし)の判定をする場合を考えてみます。例えば、4年に一度しか誕生日が来ない『2月29日』生まれの人がいます。
この、2月29日のある年を閏(うるう)年というのですが、閏年の判定は、完全に4年に一度という単純なものではないのです。
基本的には、西暦で表した年が4で割り切れれば閏年なのですが、例外があります。西暦で表した年が100で割り切れれば閏年でないというものです。
しかし、これにも例外があって、西暦で表した年が400で割り切れれば閏年なのです。非常に複雑ですね。
もうちょっと分かりやすく書いてみましょう。
こんな複雑なプログラムを作る場合は、以下の図のように、『もし~ならば~違えば~』を入れ子状にしてプログラムをつくります。
以下が閏年の判定をプログラムにしたものです。
割り切れるかどうかというのは、余りを調べて余りが0ならば割り切れるということになります。割り算の余りを求めるには、『A%B』のように書きます。
なお、なでしこには、条件分岐という構文があります。ここでは詳しく紹介しませんが、「もし」文が単純な分岐であるのに対して、条件分岐構文は複数の選択肢へ分岐します。
自由にプログラムを書いて動作を試してみよう!