PORTFOLIO & WEB DESIGN MEMORANDOM BLOG   
PORTFOLIO & WEB DESIGN MEMORANDOM BLOG   

【JAVASCRIPT】JavaScriptの条件分岐について

JavaScriptの条件分岐は、特定の条件に基づいてコードの実行を制御するために使用されます。

if 文

if文は、条件が真(true)である場合にのみコードを実行します。

  1. if (condition) {
  2.   // 条件が真の場合に実行されるコード
  3. }

if…else 文

if…else文は、条件が真でない場合に別のコードを実行することを可能にします。

  1. if (condition) {
  2.   // 条件が真の場合に実行されるコード
  3. } else {
  4.   // 条件が偽の場合に実行されるコード
  5. }

if…else if…else 文

複数の条件を評価し、それぞれに対して異なるコードを実行することができます。

  1. if (condition1) {
  2.   // condition1 が真の場合に実行されるコード
  3. } else if (condition2) {
  4.   // condition1 が偽で、condition2 が真の場合に実行されるコード
  5. } else {
  6.   // condition1 と condition2 が両方とも偽の場合に実行されるコード
  7. }

switch 文

switch文は、変数の値に基づいて複数の条件分岐を行います。

  1. switch (expression) {
  2.   case value1:
  3.     // expression が value1 と等しい場合に実行されるコード
  4.     break;
  5.   case value2:
  6.     // expression が value2 と等しい場合に実行されるコード
  7.     break;
  8.   // 他のケース
  9.   default:
  10.     // すべての case がマッチしない場合に実行されるコード
  11. }

三項演算子(条件演算子)

三項演算子は、条件が真か偽かに基づいて異なる値を返します。短い条件分岐に便利です。

  1. let result = condition ? value1 : value2;

if…else if…else 文の例

以下のコードでは、scoreの値に基づいて評価が「A」「B」「C」「D」のいずれかになります。

  1. let score = 85;
  2. if (score >= 90) {
  3.   console.log("A");
  4. } else if (score >= 80) {
  5.   console.log("B");
  6. } else if (score >= 70) {
  7.   console.log("C");
  8. } else {
  9.   console.log("D");
  10. }

Switch 文の例1

以下は、曜日に基づいて異なるメッセージを表示するswitch文の例です。

  1. let day = new Date().getDay();
  2. let dayName;
  3. switch (day) {
  4.   case 0:
  5.     dayName = "日曜日";
  6.     break;
  7.   case 1:
  8.     dayName = "月曜日";
  9.     break;
  10.   case 2:
  11.     dayName = "火曜日";
  12.     break;
  13.   case 3:
  14.     dayName = "水曜日";
  15.     break;
  16.   case 4:
  17.     dayName = "木曜日";
  18.     break;
  19.   case 5:
  20.     dayName = "金曜日";
  21.     break;
  22.   case 6:
  23.     dayName = "土曜日";
  24.     break;
  25.   default:
  26.     dayName = "不明な曜日";
  27. }
  28. console.log("今日は " + dayName + " です。");

Switch 文の例2

以下は、数値の値に応じて異なるメッセージを表示する簡単なswitch文の例です。

  1. let score = 85;
  2. let grade;
  3. switch (true) {
  4.   case (score >= 90):
  5.     grade = "A";
  6.     break;
  7.   case (score >= 80):
  8.     grade = "B";
  9.     break;
  10.   case (score >= 70):
  11.     grade = "C";
  12.     break;
  13.   case (score >= 60):
  14.     grade = "D";
  15.     break;
  16.   default:
  17.     grade = "F";
  18. }
  19. console.log("あなたの成績は " + grade + " です。");

三項演算子の例1

以下は、数値が偶数か奇数かを判定し、それに基づいてメッセージを設定する三項演算子の例です。

  1. let number = 7;
  2. let message = (number % 2 === 0) ? "偶数です。" : "奇数です。";
  3. console.log(message);

この例では、numberが偶数の場合は「偶数です。」というメッセージが表示され、奇数の場合は「奇数です。」というメッセージが表示されます。

三項演算子の例2

以下は、数値が正の数か負の数か、またはゼロであるかを判定する三項演算子の例です。

  1. let number = -5;
  2. let message = (number > 0) ? "正の数です。" : (number < 0) ? "負の数です。" : "ゼロです。";
  3. console.log(message);

この例では、numberが正の数の場合は「正の数です。」、負の数の場合は「負の数です。」、ゼロの場合は「ゼロです。」というメッセージが表示されます。

Switch文とif…else if…else文の比較

Switch文の例で、if…else if…else文の各ケースがどの条件に対応しているかを説明します。

Switch文

  1. let score = 85;
  2. let grade;
  3. switch (true) {
  4.   case (score >= 90):
  5.     grade = "A";
  6.     break; // if (score >= 90)
  7.   case (score >= 80):
  8.     grade = "B";
  9.     break; // else if (score >= 80)
  10.   case (score >= 70):
  11.     grade = "C";
  12.     break; // else if (score >= 70)
  13.   case (score >= 60):
  14.     grade = "D";
  15.     break; // else if (score >= 60)
  16.   default:
  17.     grade = "F"; // else
  18. }
  19. console.log("あなたの成績は " + grade + " です。");

if…else if…else文

  1. let score = 85;
  2. let grade;
  3. if (score >= 90) {
  4.   grade = "A";
  5. } else if (score >= 80) {
  6.   grade = "B";
  7. } else if (score >= 70) {
  8.   grade = "C";
  9. } else if (score >= 60) {
  10.   grade = "D";
  11. } else {
  12.   grade = "F";
  13. }
  14. console.log("あなたの成績は " + grade + " です。");

三項演算子とif…else if…else文の比較

三項演算子の例で、if、else if、elseがどの部分に対応しているかを説明します。

三項演算子

  1. let number = -5;
  2. let message = (number > 0) ? "正の数です。" : (number < 0) ? "負の数です。" : "ゼロです。";
  3. console.log(message);

if…else if…else文

  1. let number = -5;
  2. let message;
  3. if (number > 0) {
  4.   message = "正の数です。";
  5. } else if (number < 0) {
  6.   message = "負の数です。";
  7. } else {
  8.   message = "ゼロです。";
  9. }
  10. console.log(message);

if (number > 0) は (number > 0) ? “正の数です。” : … に対応しています。
else if (number < 0) は :(number < 0) ? “負の数です。” : … に対応しています。
else は : “ゼロです。” に対応しています。

if…else if…else文の実用例

以下のコードは、スコアを入力するフォームを追加して、入力されたスコアに応じてメッセージを表示する例です。

  1. <!DOCTYPE html>
  2. <html lang="ja">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.     <title>スコア判定フォーム</title>
  7. </head>
  8. <body>
  9.     <!-- スコアを入力するフォーム -->
  10.     <label for="scoreInput">スコアを入力してください:</label>
  11.     <input type="number" id="scoreInput" placeholder="例: 85">
  12.     <button onclick="evaluateScore()">判定</button>
  13.     <!-- 結果を表示する要素 -->
  14.     <div id="result"></div>
  15.     <script>
  16.         function evaluateScore() {
  17.             // 入力されたスコアを取得
  18.             let score = document.getElementById('scoreInput').value;
  19.             let resultMessage;
  20.             // スコアに基づいてメッセージを決定
  21.             if (score >= 90) {
  22.                 resultMessage = "素晴らしい!";
  23.             } else if (score >= 70) {
  24.                 resultMessage = "良い感じです!";
  25.             } else {
  26.                 resultMessage = "もっと頑張りましょう!";
  27.             }
  28.             // 結果を表示
  29.             document.getElementById('result').innerText = resultMessage;
  30.         }
  31.     </script>
  32. </body>
  33. </html>

コードの解説

入力フォームの作成

inputタグを使用してスコアを入力するためのフォームを作成します。type=”number”により、数値のみを入力できるようにしています。
buttonタグのonclick属性にJavaScript関数evaluateScore()を指定して、ボタンがクリックされたときにスコアの判定を行います。

JavaScriptのロジック

evaluateScore()関数が実行されると、document.getElementById(‘scoreInput’).valueで入力されたスコアの値を取得します。
そのスコアに基づいて条件分岐を行い、メッセージを決定します。
最後に、決定したメッセージをresultというIDを持つdivタグ内に表示します。

実行結果

ブラウザ上でフォームにスコアを入力し、「判定」ボタンをクリックすると、入力されたスコアに基づいて対応するメッセージが下のdivタグ内に表示されます。

MILMONA   MILMONA   MILMONA   MILMONA   MILMONA   
MILMONA   MILMONA   MILMONA   MILMONA   MILMONA