なでしこWEB > マニュアル > プログラミング基礎
なでしこ
プログラミング基礎編〜条件分岐
条件分岐
今度は、条件によって、実行するプログラムを変更するという構文を覚えましょう。これは、『もし、xxがxxならば〜違えば〜』というものです。『もし〜ならば〜』は日常生活でも使うので分かりやすいと思います。例えば、『もし、天気がよければ洗濯物を干す』などのように使うのです。
天気の話
それでは、実際にプログラムを動かして、『もし〜ならば〜』の構文の使い方を覚えましょう!以下は簡単ななでしこのプログラムです。説明しなくてもどのように動くか分かるのではないでしょうか。
天気は「晴れ」
もし、天気「晴れ」ならば
   「洗濯物を干す」と表示。
違えば
   「洗濯物は干さない」と表示。
一応結果を書いておくと、一行目で『天気は「晴れ」と書いているので、「洗濯物を干す」と表示されます。次に、これはどうでしょうか?
天気は「雨」
もし、天気「晴れ」ならば
  「洗濯物を干す」と表示。
違えば
  「洗濯物は干さない」と表示。
さっきと一行目が違うだけです。ですが、表示結果は「洗濯物は干さない」となります。
年齢の話
次に年齢について考えてみます。日本では法律で年齢が20歳未満だと「未成年」とみなされます。それで、未成年の喫煙や飲酒も禁止されていますね。
ここでは、コンビニの店員ロボットを作ったとしましょう。若者がビールを買おうとしたら年齢を尋ねて20歳未満なら「売りません!」と表示するプログラムです。
「年齢は?」と尋ねる。
年齢はそれ。
もし、年齢20未満ならば
  「ビールは売りません!」と言う。
違えば
  「お買い上げありがとうございます。」と言う。
上のプログラム実行して18を入力すると「ビールは売りません!」と表示されれば実験成功です。
比較に使える演算子
条件に数値を指定した場合をみましたので、ここで条件として指定できる式や演算子についてまとめておきます。
以上、以下、超、未満
条件 意味 利用例
AがB以上 A≧B もし、年齢が20以上ならば
AがB以下 A≦B もし、人数が30以下ならば
AがB超 A>B もし、人数が200超ならば
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で割り切れれば閏年なのです。
非常に複雑ですね。
もうちょっと分かりやすく書いてみましょう。

(1)年が4で割り切れれば閏年の可能性がある
(2)年が4で割り切れても、100で割り切れれば閏年ではない。
(3)年が4で割り切れて、100で割り切れても400で割り切れれば閏年である。
こんな複雑なプログラムを作る場合は、以下の図のように、『もし〜ならば〜違えば〜』を入れ子状にしてプログラムをつくります。
以下が閏年の判定をプログラムにしたものです。
年は2000
#(1)4で割れたら閏年の可能性
もし(年%4)=0ならば
  #(2)100で割れたら閏年でない可能性
  もし(年%100)=0ならば
    #(3)400で割れたら閏年
    もし(年%400)=0ならば
      「閏年である」と表示。
    違えば
      「閏年ではない」と表示。
  違えば
    「閏年である」と表示。
違えば
  「閏年ではない」と表示。
割り切れるかどうかというのは、余りを調べて余りが0ならば割り切れるということになります。割り算の余りを求めるには、『A%B』のように書きます。

色で区別しましたが、入れ子になっている部分の対応が分かるでしょうか?

次のページ→繰り返す
前のページ←変数を使う
なでしこWEB > マニュアル > プログラミング基礎