switch

概要

式を評価し、その式の値が case のラベルと一致するなら、その case に関連付けられた文を実行します。

実装されたバージョン: JavaScript 1.2, NES 3.0
ECMA バージョン: ECMA-262, Edition 3

構文

switch (expression) {
   case label1:
      statements1
      [break;]
   case label2:
      statements2
      [break;]
   ...
   case labelN:
      statementsN
      [break;]
   default:
      statements_def
      [break;]
}

パラメータ

expression 
各ラベルと一致するか調べる式。
labelN 
expression と一致するか調べるのに使う識別子。
statementsN 
expression が、関連付けられたラベルと一致するなら実行される文。
statements_def 
expression がいずれのラベルにも一致しなかったのなら実行される文。

説明

もし一致するものが見つかれば、プログラムは関連付けられた文を実行します。もし複数の case が与えられた値に一致するなら、たとえ case がお互いに等しくなくても、一致した最初の case が選択されます。

プログラムは最初に式の値と一致するラベルを持つ case 節を探し、そしてその節に制御を移し、関連付けられた文を実行します。もし一致するラベルが見つからなければ、プログラムは省略可能な default 節を探します。そしてもし見つかれば、その節に制御を移し、関連付けられた文を実行します。もし default 節が見つからなければ、プログラムは switch の終わりに続く文から実行を継続します。規約により、default 節は最後の節ですが、そうである必要はありません。

各ケースのラベルに関連付けられた省略可能な break 文は、一度一致した文が実行されたら、プログラムが switch から抜け出し、switch に続く文から実行を継続することを保証します。もし break が省略されたなら、プログラムは switch 文の中の次の文から実行を継続します。

例: switch を使う

次の例では、もし expression が "Bananas" に評価されるなら、プログラムは case "Bananas" で値に一致し、関連付けられた文を実行します。break と遭遇したときは、プログラムは switch から抜け出し、switch に続く文を実行します。もし break が省略されたなら、case "Cherries" に対する文も実行されます。

switch (expr) {
   case "Oranges":
      document.write("Oranges are $0.59 a pound.<br>");
      break;
   case "Apples":
      document.write("Apples are $0.32 a pound.<br>");
      break;
   case "Bananas":
      document.write("Bananas are $0.48 a pound.<br>");
      break;
   case "Cherries":
      document.write("Cherries are $3.00 a pound.<br>");
      break;
   case "Mangoes":
   case "Papayas":
      document.write("Mangoes and papayas are $2.79 a pound.<br>");
      break;
   default:
      document.write("Sorry, we are out of " + expr + ".<br>");
}
document.write("Is there anything else you'd like?<br>");


Document Tags and Contributors

Contributors to this page: Nanto vi, ethertank, Mgjbot
最終更新者: ethertank,