Visit Mozilla.org

Core JavaScript 1.5 Guide:Conditional Statements

出典: MDC


[編集] 条件文

条件文は指定した条件が true ならば実行されるコマンドのセットです。JavaScript は if...elseswitch の 2 つの条件文をサポートしています。

[編集] if...else 文

ある論理条件が true ならばある文を実行したいというときには if 文を使用してください。オプション的な else 節を使用すると、条件が false の場合にある文を実行することができます。if 文は次のように使用します。

if (condition)
   statement_1
[else
   statement_2]

condition には true か false に評価される式が入ります。condition が true に評価された場合は statement_1 が実行され、そうでない場合は statement_2 が実行されます。statement_1statement_2 はどんな文でもかまいません。if 文をさらに入れ子にすることもできます。

次のように else if を使用して文を重ねることで複数の条件を順々にテストさせることができます。

if (condition)
   statement_1
[else if (condition_2)
   statement_2]
...
[else if (condition_n_1)
   statement_n_1]
[else
   statement_n]

複数の文を実行させるには、ブロック文 ({ ... }) を使用してその文をグループ化してください。一般に常にブロック文を使用するのが優れた方法です。特に if 文を入れ子にしたコードでは有効です。

if (condition) {
   statements_1
} else {
   statements_2
}

条件式では単純な代入は使わないようにしてください。コードをちらっと見たときに、代入を等価条件と見間違えるおそれがあるためです。例えば次のようなコードは使用しないでください。

if (x = y) {
   /* 正しいことをする */
}

条件式で代入を使う必要がある場合に一般的な方法として代入式をさらに括弧でくくるというものがあります。

if ((x = y)) {
   /* 正しいことをする */
}

プリミティブな真偽値の truefalse を Boolean オブジェクトの true や false という値と混同しないでください。undefined や、null0NaN、空文字列 ("") でないどんな値も、そして false という値を持つ Boolean オブジェクトを含むどんなオブジェクトも、条件文に通されると true に評価されます。

var b = new Boolean(false);
if (b) // この条件は true に評価される


次の例では、関数 checkDataText オブジェクトに含まれている文字数が 3 の場合に true を返し、そうでない場合はアラートを表示して false を返します。

function checkData() {
   if (document.form1.threeChar.value.length == 3) {
      return true;
   } else {
      alert("Enter exactly three characters. " +
         document.form1.threeChar.value + " is not valid.");
      return false;
   }
}

[編集] switch 文

switch 文を使うと、プログラムは式を実行し、式の値を case ラベルにマッチさせます。マッチすると、プログラムは結びつけられた文を実行します。switch 文は次のように使用します。

switch (expression) {
   case label_1:
      statements_1
      [break;]
   case label_2:
      statements_2
      [break;]
   ...
   default:
      statements_def
      [break;]
}

プログラムはまず式の値にマッチしたラベルを持つ case 節を探します。そしてコントロールをその節に移し、結びつけられた文を実行します。マッチしたラベルがない場合、プログラムはオプション的な default 節を探し、あった場合はその節にコントロールを移し、結びつけられた文を実行します。default 節がなかった場合、プログラムは switch 文の後に続く文を実行し続けます。慣例により、default 節は最後の節にします。しかしそうしなければいけないわけではありません。

case 節に結びつけられたオプション的な break 文は、一度マッチした文を実行したら switch から抜け、switch に続く文を実行し続けることを確実にするものです。break を省略した場合、その switch 文における次の文を実行し続けます。


次の例では、fruittype が "Bananas" に評価された場合、"Bananas" という場合にマッチし、それに結びつけられた文が実行されます。break に出くわすとプログラムは switch から抜け、switch の後に続く文を実行します。break を省略すると "Cherries" という場合の文も実行されます。

switch (fruittype) {
   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 " + fruittype + ".<br>");
}
document.write("Is there anything else you'd like?<br>");

« »