if-else文の基本
JavaScriptのif-else文は、特定の条件が真(true)か偽(false)かに基づいて、特定のコードブロックを実行するための制御構造です。
基本的な構文は以下のようになります:
if (条件) {
// 条件が真(true)の場合に実行されるコード
} else {
// 条件が偽(false)の場合に実行されるコード
}
ここで、条件
は評価され、その結果が真(true)か偽(false)かによって、どのコードブロックが実行されるかが決まります。
例えば:
let weather = "rainy";
if (weather === "sunny") {
console.log("Let's go to the park!");
} else {
console.log("Let's stay indoors.");
}
このコードでは、weather
が"sunny"
と等しいかどうかをチェックしています。もし等しければ、”Let’s go to the park!”と出力します。等しくなければ、”Let’s stay indoors.”と出力します。この場合、weather
は"rainy"
なので、”Let’s stay indoors.”が出力されます。
このように、if-else文はプログラムの流れを制御するための重要なツールです。条件によって異なるアクションを実行することができます。これは、ユーザーの入力、外部データ、またはプログラムの状態に基づいて動的に振る舞うプログラムを作成するために必要な機能です。
条件付き変数の代入
JavaScriptでは、条件に基づいて変数に値を代入することができます。これは、特定の条件が満たされた場合にのみ特定の値を変数に設定したい場合に便利です。
このような条件付きの代入は、三項演算子(ternary operator)を使用して行うことができます。三項演算子は、条件 ? 値1 : 値2
の形式で使用され、条件が真(true)であれば値1を、偽(false)であれば値2を返します。
例えば:
let weather = "rainy";
let activity = (weather === "sunny") ? "Let's go to the park!" : "Let's stay indoors.";
console.log(activity); // "Let's stay indoors."
このコードでは、weather
が"sunny"
と等しいかどうかをチェックしています。もし等しければ、activity
には”Let’s go to the park!”が代入されます。等しくなければ、”Let’s stay indoors.”が代入されます。この場合、weather
は"rainy"
なので、”Let’s stay indoors.”が出力されます。
このように、三項演算子を使用すると、一行で条件付きの変数代入を行うことができます。これはコードを簡潔にし、可読性を向上させるのに役立ちます。ただし、複雑な条件や複数の条件を持つ場合には、if-else文を使用した方が適切かもしれません。それは、より複雑なロジックを扱うのに適しています。三項演算子は、単純な条件付き代入に最適です。
ネストされたif-else文
JavaScriptのif-else文はネストすることができます。つまり、if-else文の中に別のif-else文を書くことができます。これは、複数の条件をチェックする必要がある場合に便利です。
ネストされたif-else文の基本的な構文は以下のようになります:
if (条件1) {
// 条件1が真(true)の場合に実行されるコード
} else if (条件2) {
// 条件1が偽(false)で、条件2が真(true)の場合に実行されるコード
} else {
// 条件1と条件2が両方とも偽(false)の場合に実行されるコード
}
例えば:
let weather = "rainy";
let temperature = 20;
if (weather === "sunny") {
console.log("Let's go to the park!");
} else if (temperature < 0) {
console.log("It's too cold outside. Let's stay indoors.");
} else {
console.log("Let's stay indoors.");
}
このコードでは、まずweather
が"sunny"
と等しいかどうかをチェックしています。もし等しければ、”Let’s go to the park!”と出力します。等しくなければ、次にtemperature
が0未満かどうかをチェックします。もし0未満であれば、”It’s too cold outside. Let’s stay indoors.”と出力します。どちらの条件も満たさない場合は、”Let’s stay indoors.”と出力します。
このように、ネストされたif-else文を使用すると、複数の条件を順番にチェックし、それぞれに対応するアクションを実行することができます。これは、より複雑なロジックを扱うのに適しています。
条件式内での代入
JavaScriptでは、条件式の中で変数に値を代入することができます。これは、特定の条件が真(true)であれば変数に値を代入し、その結果に基づいて条件分岐を行いたい場合に便利です。
しかし、このような代入は注意が必要です。なぜなら、代入演算子=
は値を返すため、常に真と評価されるからです。そのため、意図せずに常にif文の中のコードが実行されてしまう可能性があります。
例えば:
let value;
if (value = true) {
console.log("The condition is true.");
} else {
console.log("The condition is false.");
}
このコードでは、value
にtrue
を代入しています。そして、その代入の結果(true
)がif文の条件として評価されます。そのため、”The condition is true.”と出力されます。
しかし、もしvalue
にfalse
を代入した場合でも、代入自体は成功するため、if文の中のコードが実行されます。これは、代入演算子=
が値を返すためです。
したがって、条件式内での代入は、意図した動作を得るためには注意が必要です。特に、等価演算子==
や厳密等価演算子===
と混同しないように注意が必要です。これらの演算子は値を比較し、その結果を真または偽として返します。