6. 値で分ける(によって分けよう)
1つの値が何なのかによって、いくつもの道にすっきり分けましょう。
この章で学ぶこと
- 1つの値によって道を分ける(
〜によって分けよう:)- いくつかの値を1つの道にまとめる、
残りは:- 下の道へ続ける(
次に続けよう)もしとどう使い分けるか
どんなときに使うの?
5章のもしで、分かれ道をいくつも作れました。でも、1つの名札がどんな値かだけを見て分けるときは、同じ比較を何度も書くことになって長くなります。
『曜日』を「土曜日」にしよう
もし(『曜日』が「土曜日」と同じだ)なら:
「週末!」を出力しよう
もしくは(『曜日』が「日曜日」と同じだ)なら:
「週末!」を出力しよう
それ以外なら:
「平日」を出力しよう
こんなときに〜によって分けようを使うと、ずっと短く読みやすくなります。
『曜日』を「土曜日」にしよう
『曜日』によって分けよう:
「土曜日」、「日曜日」の場合:
「週末!」を出力しよう
残りは:
「平日」を出力しよう
基本の形
『会員ランク』を「一般」にしよう
『会員ランク』によって分けよう:
「VIP」の場合:
「ようこそ、特別なお客様!」を出力しよう
「一般」の場合:
「ご来店ありがとうございます。」を出力しよう
残りは:
「会員登録をお願いします。」を出力しよう
『会員ランク』によって分けよう:— 何を見て分けるかを決めます。「VIP」の場合:— その値が「VIP」と同じなら、下のまとまりを実行します。残りは:— どの場合にも合わないときに実行します。(なくてもかまいません。)
字下げが2段になっていることに注目してください。の場合:は1段、その中でやることは2段字下げします。
数字でも分けられます。
『番号』を2にしよう
『番号』によって分けよう:
1の場合:
「1番メニュー: はじめる」を出力しよう
2の場合:
「2番メニュー: 設定」を出力しよう
残りは:
「そのメニューはありません。」を出力しよう
いくつかの値を1つの道に
値を読点やコンマで並べると、そのどれか1つと同じときに実行されます。
『宝石』を「シルバー」にしよう
『宝石』によって分けよう:
「ゴールド」、「シルバー」の場合:
「貴金属です。」を出力しよう
残りは:
「一般的な鉱物です。」を出力しよう
合う場合がないとき
どの場合にも合わないのに残りは:もないときは、何も起こらずに次の行へ進みます。エラーではありません。
『曜日』を「水曜日」にしよう
『曜日』によって分けよう:
「月曜日」の場合:
「一週間の始まり!」を出力しよう
「金曜日」の場合:
「もうすぐ週末です!」を出力しよう
「おしまい!」を出力しよう
おしまい!だけが出ます。思いがけない値が来たときに気づきたいなら、残りは:を必ず書いておいてください。
下の道へ続ける: 次に続けよう
ふつうは、合った道1つだけを実行して終わります。道の最後に次に続けようと書くと、すぐ下の道も続けて実行します。高いランクが低いランクの特典まで全部もらえる場合に便利です。
『会員ランク』を「VIP」にしよう
『会員ランク』によって分けよう:
「VIP」の場合:
「伝説の剣をもらいました。」を出力しよう
次に続けよう
「ゴールド」の場合:
「魔法のポーションをもらいました。」を出力しよう
次に続けよう
残りは:
「初心者用の包帯をもらいました。」を出力しよう
VIPは3つ全部を、ゴールドは下の2つを、そのほかの会員は包帯だけをもらいます。『会員ランク』を変えながら実行してみてください。
もしとによって分けよう、いつどっちを?
| こんなときは | これを |
|---|---|
| 1つの値が何と同じかで分けるとき | によって分けよう |
| 大きい・小さいのような範囲で分けるとき(90点以上など) | もし |
いくつかの名札を一緒に見るとき(かつ、または) |
もし |
によって分けようは「同じかどうか」だけを調べます。「90以上」のような範囲はもしで書いてください。
よくある間違い
1. 文字と数字を混ぜる
「1」(文字)と1(数字)は違う値なので、おたがいに合いません。入力してもらった値で分けるときは特に気をつけてください。2章のように【数字】で入力してもらおうで受け取るか、場合を文字で書いてください。
『選択』を「1」にしよう
『選択』によって分けよう:
1の場合:
「数字の1と合いました。」を出力しよう
残りは:
「文字の1は、数字の1とは違います。」を出力しよう
2. 字下げの段を取り違える
の場合:と残りは:はによって分けよう:より1段内側、やることはそこからさらに1段内側です。
まとめ
| やりたいこと | 書き方 |
|---|---|
| 値によって分ける | 『値』によって分けよう: |
| 1つの場合 | 「値」の場合: |
| いくつかの値をまとめて | 「あ」、「い」の場合: |
| それ以外のすべての場合 | 残りは: |
| 下の道も実行する | 次に続けよう |
練習問題
1. 季節(「春」、「夏」、「秋」、「冬」)によって、合う果物を出力してみましょう。それ以外の値なら「そんな季節はありません。」と出力してください。
答えの例
『季節』を「夏」にしよう
『季節』によって分けよう:
「春」の場合:
「いちご」を出力しよう
「夏」の場合:
「スイカ」を出力しよう
「秋」の場合:
「りんご」を出力しよう
「冬」の場合:
「みかん」を出力しよう
残りは:
「そんな季節はありません。」を出力しよう
2. 月(1〜12)を見て、何日まであるかを出力してみましょう。(2月は28日、4・6・9・11月は30日、それ以外は31日)
答えの例
『月』を4にしよう
『月』によって分けよう:
2の場合:
「28日まで」を出力しよう
4, 6, 9, 11の場合:
「30日まで」を出力しよう
残りは:
「31日まで」を出力しよう
3. 点数が90以上なら「A」、80以上なら「B」と出力したいです。によって分けようともしのどちらが合っているでしょうか?
答えを見る
もしです。によって分けようは値が同じかどうかだけを調べるので、「90以上」のような範囲は表せません。5章の練習問題のように、もし … もしくは …で書いてください。
次の章では、値をいくつもまとめて扱うリストと辞書を学びます。