条件分岐

常に同じことをするプログラムはあまり役に立ちません。ログインしている訪問者には1つのメッセージを、未登録者には別のメッセージを表示するページが欲しい。18歳の年齢は受け入れるがが12歳は受け入れないフォームが欲しい。ゲームで勝ったか負けたかを報告したい。これらはすべて、質問をして答えに基づいて行動する方法が必要です。これが条件分岐の役割です。条件分岐により、何かが真かどうかに基づいて、コードが何を実行するかを選択できます。
既にピースはそろっています。比較演算子と論理演算子は真偽の答えを生成し、この章はそれに基づいて行動することについてです。
条件が真のときだけコードを実行する
**if文**は、条件が真のときだけコードのブロックを実行します。単語if、括弧内の条件、波括弧内のブロックを書きます。条件が真ならブロックが実行されます。そうでなければ、JavaScriptはブロックをスキップして続行します。
const age = 20;
if (age >= 18) {
console.log("入場できます。"); // 入場できます。
}条件age >= 18は真または偽です。ここでageは20なので真で、メッセージが表示されます。ageを12に変更すると条件は偽になり、ブロックはスキップされて何も表示されません。
多くの場合、条件が偽のときのフォールバックが必要です。それがelseの役割です。
const age = 12;
if (age >= 18) {
console.log("入場できます。");
} else {
console.log("大きくなったらまた来てください。"); // 大きくなったらまた来てください。
}2つのブロックのうち正確に1つが実行され、両方が実行されることはありません。3つ以上の結果がある場合、else ifで別の条件をチェックできます。
const score = 74;
if (score >= 90) {
console.log("成績: A");
} else if (score >= 70) {
console.log("成績: B"); // 成績: B
} else {
console.log("成績: C");
}JavaScriptは上から各条件をチェックし、最初に真になったところで停止します。スコア74は>= 90ではありませんが、>= 70なので、成績: Bと表示されて、elseを見ることはありません。
ifは括弧内の条件が真の場合にのみそのブロックを実行し、elseは真でない場合のフォールバックを提供します。結果が3つ以上の場合はelse ifを追加します。JavaScriptは上から順にチェックし、最初にマッチしたところで停止するので、条件を意味のある順序で並べましょう。 三項演算子で値を選ぶ
時には、if / elseは1つの小さな仕事をします。2つの値の間から選択することです。そのためには、**三項演算子**と呼ばれるより短い形があります。条件を書いて、?、真の場合に使用する値、:、偽の場合に使用する値を書きます。
const age = 20;
const message = age >= 18 ? "ようこそ" : "若すぎます";
console.log(message); // ようこそこれを質問として読んでください。age >= 18ですか?はい、messageは"ようこそ"になります。いいえ、"若すぎます"になります。これはif / elseがする同じ判断を1行で行います。
三項演算子は、値を格納または印刷しようとするときに最適です。ブランチが複数のことをする必要がある場合、if文の方が明確なので、各側が単一の値である場合にのみ三項演算子を使用してください。
condition ? valueIfTrue : valueIfFalse。格納または印刷するものを選択しているときに輝きます。ブランチが単一の値の返却以上のことをする必要がある場合は、フルのifを使用してください。より明確に読むでしょう。 switch で1つの値を固定ケースと比較する
1つの値を固定の可能性のリストと照合しているときに、**switch文**は長いif / else ifチェーンよりも整理されていることができます。チェックする値を指定してから、照合するケースをリストアップします。
const day = "Tue";
switch (day) {
case "Sat":
console.log("週末");
break;
case "Sun":
console.log("週末");
break;
default:
console.log("平日"); // 平日
}switchはdayを各caseと順番に比較します。一致を見つけたら、そのケースのコードを実行します。breakはそれを停止するよう指示します。それがなければ、JavaScriptは次のケースに走り続けます。defaultはケースが一致しないときに実行されるフォールバックで、チェーンの最終elseのようなものです。
breakを忘れるのはswitchの古典的な間違いです。それを外すと、コードは一致したケースを実行してから、breakまたは終了に達するまで下のすべてのケースを実行します。ほぼすべての場合、これはあなたの意図ではありません。
switchは1つの値をcaseオプションのリストと照合し、一致したものを実行し、defaultをキャッチオールとします。各ケースを常にbreakで終了します。そうしないと、JavaScriptは下のケースに走り続けます。その欠落したbreakはほぼすべての人が少なくとも1回は犯す間違いです。 正しいツールを選ぶ
これで3つの決定方法があり、選択はほぼ適合について です。範囲や組み合わせの条件、特にほとんどの分岐にはif / else if / elseチェーンを使用します。格納または印刷する2つの値の1つを選択するときに三項演算子を使用します。1つの値を固定オプションの一握りと照合しているときにswitchを使用します。
これらのどれもが他より高度ではありません。あなたの決定を最も明確に述べる1つに手を伸ばし、確信がない場合、ifステートメントは常に安全なデフォルトです。
ifチェーン、2つの値のうちの1つを選択しているときに三項演算子、1つの値を固定オプションと照合しているときにswitchを使用します。どれもが他より洗練されていません。あなたの決定を最も明確に述べるものを選び、確実でない場合はifをデフォルトにします。 条件分岐がここからどこへ行くか
条件分岐は、プログラムが固定スクリプトであることから入力に対応し始める方法です。あなたはそれを絶え間なく使用し、周囲のすべてと組み合わせます。真偽の答えは演算子から来て、ここで作成する決定は、ループでデータを繰り返し実行し、関数でパッケージ化できるようになると支払う価値があります。
次の章、ループは、制御フローの他の半分を追加します。コードを実行するか選択するだけではなく、条件がそれを止めるまで何度も何度も実行します。

