「JavaScript/制御構造」の版間の差分

削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
加筆
Ef3 (トーク | 投稿記録)
→‎switch: {{コラム|switch文の限界と限界突破|}}
208 行
 
=== switch 文の構文===
<source lang="jsjavascript">
switch (式) {
case 値1 :
222 行
</source>
switch文に与えられた式に一致するcase句の値をルックアップし(比較は厳密比較演算子 === による)、対応する文が実行され'''break文などの中断制御文が見つからない限り次の文が実行されます'''。
{{コラム|switch文の限界と限界突破|
swicth文は、上記の通り与えられた式と厳密に一致するケースに対応する文を実行します。
この為、式に対応する範囲や正規表現を直接的に表現することはできません。
この制限はややトリッキーな方法で回避できます。
<source lang="javascript" highlight=3 line>
let age = prompt("年齢は?"),
text = "";
switch (true) {
case age < 3: text = "baby"; break;
case age < 7: text = "little child"; break;
case age < 13: text = "child"; break;
case age < 18: text = "youth"; break;
default : text = "adult"; break;
}
console.log(text);
</source>
ポイントは
<source lang="javascript" start=3 highlight=1 line>
switch (true) {
</source>
と式として true を与えているところで
真となっている式を持ったケース節を上から探す
と言う動作を<del>悪用</del><ins>利用</ins>しています。
}}
 
== while ==