条件分岐 - switch文
switch文
- 値に応じて処理を分岐する
- 「()」の値に対応する case文にジャンプし、break文でブロックを抜けます
文字列を数値に変換するNumber関数
- 入力ダイアログボックスを表示する promptメソッドの戻り値は文字列です
- 戻り値を数値として扱うには、文字列を数値に変換する必要があります
- 通常は「Number関数(Numberはオブジェクトですが、関数として扱うことができます)」を使用します
- 関数は、ひとまとまりの処理を名前(関数名)で呼び出せるよにしたもの
- 関数は、メソッドと同じ様に引数を処理して値を返します
変数の値が文字列のままでも、switch文で扱うことができます。
switch(month) { case '12': case '1': case '2': …
JavaScriptでは、比較演算子で数を表す文字列を比較しようとすると、自動的に数値に変換された上で比較されます。
default;
- どのcase文の値にも一致しない場合は「default;」へジャンプ
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>switch文で月を判定する</title> </head> <body> <script> var month; function season() { month = prompt('月を入力してください', '1から12の値を半角数字を入力'); month = Number(month); switch(month) { case 12: case 1: case 2: document.write("<h1>冬です。</h1>"); break; case 3: case 4: case 5: document.write("<h1>春です。</h1>"); break; case 6: case 7: case 8: document.write("<h1>夏です。</h1>"); break; case 9: case 10: case 11: document.write("<h1>秋です。</h1>"); break; default: document.write("<h1>1から12の値を入力してください</h1>"); } } </script> <h1>月別に季節を判別</h1> <p>ボタンをクリックすると月を入力するウインドウが表示されます。</p> <p><button onclick='season()'>月別に季節を判別する</button></p> </body> </html>
繰り返し処理
- 「i++」を記述
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>繰り返し処理</title> <script> var i = 1; function ans(){ switch (i){ case 1: alert("【ヒント】北海道は県ではありません"); break; case 2: alert("【ヒント】東北地方にある県です"); break; default: alert("答えは岩手県です"); } i++; } </script> </head> <body> <h3>(問題)</h3> <p>日本で最も面積が大きい“県”は何県でしょう?</p> <p><button onclick="ans()">答えを見る</button></p> <p> ※ボタンのクリックが2回までの間はヒントが表示されます。<br> ※ボタンを3回以上クリックすると、答えが表示されます。 </p> </body> </html>
まとめ
- 値に応じて対応する case文にジャンプする switch文
- switch文 のブロックを抜けるには、break文を使う
- 文字列を数値に変換する Number関数