JavaScript:複雑な条件分け
関連項目
if文の組み合わせ
if文の中にif文を入れると複雑な条件わけができます。
ヒーロー判定
空を飛べるかどうか でどんなヒーローかを判定します。空を飛べたら パーマン 、飛べなければ 仮面ライダー になります。
let kotae = prompt("空を飛べますか?「はい」か「いいえ」で答えてください");
if (kotae == "はい"){ alert("あなたはパーマンです!");}else{ alert("あなたは仮面ライダーです!");}でも、空を飛ぶヒーローには アンパンマン もいますよね?
そこで、 顔が食べられるかどうか の判定も加えてみましょう。顔が食べられるかどうかの判定はこのようになります。
let kotae2 = prompt("顔を食べられますか?「はい」か「いいえ」で答えてください。");if ( kotae2 == "はい"){ alert("あなたはアンパンマンです!");}else{ alert("あなたはパーマンです!");}この2つを組み合わせるとこのようになります:
let kotae = prompt("空を飛べますか?「はい」か「いいえ」で答えてください");
if (kotae == "はい"){ let kotae2 = prompt("顔を食べられますか?「はい」か「いいえ」で答えてください。"); if ( kotae2 == "はい") { alert("あなたはアンパンマンです!"); } else { alert("あなたはパーマンです!"); }}else{ alert("あなたは仮面ライダーです!");}最初のif文の {} の中に、二番目のif文がまるごと入っているのがわかりますか?
Scratchで書くと・・・

AND と OR
複雑な条件を書くときは、 AND(アンド) と OR(オア) が便利です。ANDは英語で「なおかつ」という意味で、ORは英語で「あるいは」という意味です。
| 条件 | 書き方 | 意味 |
|---|---|---|
| AND | a && b | aなおかつb |
| OR | a || b | aあるいはb |
AND「なおかつ」
たとえば、小学生の条件を考えましょう。小学校は7歳から入るので、7歳以上でないと入れません。 しかし、13歳になると中学生になるので、12歳以下でもないといけません。したがって、
「7歳以上なおかつ12歳以下」
というのが小学生の条件ということになります。
これをJavaScriptで表すと
nenrei >= 7 && nenrei <= 12OR「あるいは」
たとえば、「ダウンタウン」であるための条件を考えましょう。 ダウンタウンは松本人志さんと浜田雅功さんからなるので、芸人がダウンタウンであるためには、その人が松本人志さんであるか、その人が浜田雅功さんのどちらかであればよいということになります。
「松本人志さんである」あるいは「浜田雅功さんである」
というのがダウンタウンであるための条件です。
これをJavaScriptで表すとこのようになります。
geinin == "松本人志" || geinin == "浜田雅功"例
let nenrei = prompt("あなたは何歳ですか?");
if (nenrei > 6 && nenrei < 13){ alert("あなたは小学生です");}Scratchで書くと・・・

let nenrei = prompt("あなたは何歳ですか?");
if (nenrei < 7 || nenrei > 12){ alert("あなたは小学生ではありません!");}Scratchで書くと・・・
