次に、条件分岐構造のパターン2を学びましょう。
サンプルの問題2の「4行目と5行目」と「8行目と9行目」の2つの赤い枠で囲まれている部分を合わせたものが、条件分岐構造のパターン2です。
👩🏫 条件 分岐パターン2の基本形 👨🏫
分岐パターン2は、以下のように「もし 条件式 ならば」ブロックと、「そうでなければ」ブロックを合体したブロックを構成します。

👨🏫
「そうでなければ」の最後にも、必ず「 : (コロン)」が付くことを忘れないでください。

パターン2では、「もし ならば」の判定が「true(真)」のときは、「もし ならば」ブロックの中の処理を実行します。
しかし、判定が「false(偽)」のときは、「そうでなければ」ブロックの中の処理を実行します。
このパターン2の場合、必ずどちらかの処理が実行されます。つまり、二者択一です。
🧭 使用例
💻1
サンプルの問題2の、「もし ならば」と「そうでなければ」のブロックを、抜き出したプログラムです。
📖 解説
👨🏫
このままでは、条件式「nedan < okane」の判定結果は「true(真)」となりますから、「もし ならば」ブロックの中の処理が実行され「おつりは、30円です。」と出力されます。
それで、判定結果が「false(偽)」となるように、「okane」の値を「100」と書き換えて実行してみてください。
そうすると、「そうでなければ」ブロックの中の処理のほうが実行されるので、「おつりは、ありません。」と出力されます。
💻2
2つの文字列を比較して、等しいときには「2つの文字列は同じです。」と出力し、等しくないときには「2つの文字列は同じではありません。」と出力するプログラムです。
📖 解説
👩🏫
それぞれの変数に代入された文字列は同じではないので、条件式の判定は「false」になります。
それで、「そうでなければ」ブロックの中の処理のほうが実行されるので、「2つの文字列は同じではありません。」と出力されます。
💻3
2つの数値を比較して、必ず大きい方の数値を正しく答えるプログラムです。
📖 解説
👨🏫
条件式は、「kazu1 < kazu2」ですから、kazu1よりkazu2の値のほうが大きいなら、「もし ならば」ブロックの中の処理のほうが実行されます。
しかし、kazu1の値のほうがkazu2より大きい場合は、条件式は「false」になるので、「そうでなければ」ブロックの中の処理のほうが実行されます。
それで、必ず大きい方の数値を正しく答えることができます。
また、2つの数値を同じにしたときには、「そうでなければ」ブロックの中の処理が実行されます。
なぜならば、「もし ならば」の条件に当てはまらないものすべては、「そうでなければ」ブロックのほうとして処理されるからです。試してみてください。
🤖 練習問題 🤖
📝1
2つの数値を比較するプログラムです。
このプログラムを実行すると、「2つの数値は等しくありません。」と出力されます。
このプログラムを、2つの数値が等しい場合には「2つの数値は等しいか、一方が小さいです。」と出力するように、条件式の部分を修正してください。
📖 解説
👨🏫
条件式「kazu1 > kazu2」を、「等しい」も含まれるように「kazu1 >= kazu2」に修正すれば、「もし ならば」ブロックの「2つの数値は等しいか、一方が小さいです。」を出力できるようになります。
📝2
2つの文字列を比較して、等しいときには「2つの文字列は同じです。」と出力し、等しくないときには「2つの文字列は同じではありません。」と出力するプログラムです。
変数には、それぞれ以下のように異なる文字列が代入されています。
このプログラムを「2つの文字列は同じではありません。」と、正しく出力するように条件式を修正してください。
📖 解説
👨🏫
条件式が「moji1 == moji2」となっているので、2つの文字列が異なる場合には「そうでなければ」ブロックの中の処理が実行されるようになっています。
それで、正しく「もし ならば」ブロックの中の処理が実行されるようにするには、条件式を「2つの文字列が等しくないならtrue」と判定されるように条件式を修正する必要があります。
それで、条件式を「moji1 != moji2」とするというのが正解です。
💡 ポイント
- 分岐パターン2は、「もし 条件式 ならば」ブロックと、「そうでなければ」ブロックを合体したブロックを構成する。
- 「もし ならば」ブロックの条件に当てはまらないときには、すべて「そうでなければ」ブロックの中の処理が実行される
- どのような結果を出力するかによって、正しい条件式を設定する必要がある。