JavaScript-Switchケース

複数使用できます if...else…if前の章のように、多方向分岐を実行するステートメント。ただし、特にすべてのブランチが単一の変数の値に依存している場合、これが常に最良の解決策であるとは限りません。

JavaScript 1.2以降では、 switch この状況を正確に処理するステートメントであり、繰り返されるよりも効率的に処理されます if...else if ステートメント。

フローチャート

次のフローチャートは、switch-caseステートメントが機能することを説明しています。

構文

の目的 switchステートメントは、評価する式と、式の値に基づいて実行するいくつかの異なるステートメントを提供することです。通訳はそれぞれをチェックしますcase一致するものが見つかるまで、式の値に対して。一致するものがない場合、default 条件が使用されます。

switch (expression) {
   case condition 1: statement(s)
   break;
   
   case condition 2: statement(s)
   break;
   ...
   
   case condition n: statement(s)
   break;
   
   default: statement(s)
}

ザ・ breakステートメントは、特定のケースの終了を示します。それらが省略された場合、インタプリタは次の各場合に各ステートメントを実行し続けます。

説明します break のステートメント Loop Control 章。

次の例を試して、switch-caseステートメントを実装してください。

<html>
   <body>   
      <script type = "text/javascript">
         <!--
            var grade = 'A';
            document.write("Entering switch block<br />");
            switch (grade) {
               case 'A': document.write("Good job<br />");
               break;
            
               case 'B': document.write("Pretty good<br />");
               break;
            
               case 'C': document.write("Passed<br />");
               break;
            
               case 'D': document.write("Not so good<br />");
               break;
            
               case 'F': document.write("Failed<br />");
               break;
            
               default:  document.write("Unknown grade<br />")
            }
            document.write("Exiting switch block");
         //-->
      </script>      
      <p>Set the variable to different value and then try...</p>
   </body>
</html>

出力

Entering switch block
Good job
Exiting switch block
Set the variable to different value and then try...

breakステートメントは、switch-caseステートメントで主要な役割を果たします。breakステートメントなしでswitch-caseステートメントを使用する次のコードを試してください。

<html>
   <body>      
      <script type = "text/javascript">
         <!--
            var grade = 'A';
            document.write("Entering switch block<br />");
            switch (grade) {
               case 'A': document.write("Good job<br />");
               case 'B': document.write("Pretty good<br />");
               case 'C': document.write("Passed<br />");
               case 'D': document.write("Not so good<br />");
               case 'F': document.write("Failed<br />");
               default: document.write("Unknown grade<br />")
            }
            document.write("Exiting switch block");
         //-->
      </script>      
      <p>Set the variable to different value and then try...</p>
   </body>
</html>

出力

Entering switch block
Good job
Pretty good
Passed
Not so good
Failed
Unknown grade
Exiting switch block
Set the variable to different value and then try...