概要
今回は3.JavaScriptの文法と構文について、の
条件分岐について確認していきます。
ここは言語ごとに個性が出るところですね。
※無料版なので、誤っている情報もあると思いますが、アウトプットできれば良しとします。
条件分岐
条件分岐はいくつか種類があるのでその辺を聞いてみます。
【質問】
JavaScriptの文法と構文について、条件分岐の種類、記述方法や注意点を教えてください。
【回答】
JavaScriptの条件分岐には、以下の3つの種類があります。
if文
指定した条件が真の場合に実行されるブロックを指定するために使用されます。
if (condition) {
// 条件が真の場合に実行する処理
}
if-else文
指定した条件が真の場合に実行されるブロックと、偽の場合に実行されるブロックをそれぞれ指定するために使用されます。
if (condition) {
// 条件が真の場合に実行する処理
} else {
// 条件が偽の場合に実行する処理
}
elseif文
条件分岐において、複数の条件を判定するためには、else if文を使用することができます。
以下のように記述することで、複数の条件に対してそれぞれ異なる処理を行うことができます。
if (condition1) {
// condition1がtrueの場合の処理
} else if (condition2) {
// condition2がtrueの場合の処理
} else if (condition3) {
// condition3がtrueの場合の処理
} else {
// どの条件にも該当しない場合の処理
}
switch文
複数の条件に基づいて、異なる処理を実行するために使用されます。
switch (expression) {
case value1:
// expressionがvalue1の場合に実行する処理
break;
case value2:
// expressionがvalue2の場合に実行する処理
break;
default:
// 上記のどの条件にも該当しない場合に実行する処理
break;
}
条件式には、比較演算子や論理演算子を使用することができます。また、if文やif-else文では、条件式を括弧でくくることが推奨されます。
if ((x > 0) && (y < 10)) {
// xが0より大きく、かつyが10未満の場合に実行する処理
}
switch文では、各case文の最後に必ずbreak文を記述する必要があります。これを忘れると、該当するcase文だけでなく、それ以降のcase文の処理も実行されてしまいます。
if,if-else,switchは他言語でもよく使用しますね。
条件式には比較演算子や論理演算子を入れるということで、JavaScriptで使用できる比較演算子、論理演算子を聞いてみます。
比較演算子・論理演算子
【質問】
JavaScriptで使用できる比較演算子や論理演算子を教えてください。
【回答】
JavaScriptで使用できる比較演算子と論理演算子は以下の通りです。
比較演算子:
==
等しい場合にtrueを返す。
===
値と型が等しい場合にtrueを返す。
!=
等しくない場合にtrueを返す。
!==
値または型が等しくない場合にtrueを返す。
>
左辺の値が右辺の値より大きい場合にtrueを返す。
<
左辺の値が右辺の値より小さい場合にtrueを返す。
>=
左辺の値が右辺の値以上の場合にtrueを返す。
<=
左辺の値が右辺の値以下の場合にtrueを返す。
論理演算子
&&
論理積(かつ)
両方の式がtrueの場合にtrueを返す。
||
論理和(または)
どちらかの式がtrueの場合にtrueを返す。
!
否定
式の結果を反転させる。
例えば、以下のように使用することができます。
var x = 5;
var y = 10;
if (x < y) {
console.log("x is less than y");
}
if (x == 5 && y == 10) {
console.log("x is 5 and y is 10");
}
if (x !== "5") {
console.log("x is not a string with the value of 5");
}
上記の例では、<、==、!==演算子と、&&演算子が使用されています。
注意すべき点として、==演算子と===演算子の違いがあります。
前者は型の変換を行うため、異なる型の値でも比較が可能であるため、注意して使用する必要があります。
===や!==など、言語によって使用できるできないとか、使い方が違うとかありますね。
JavaScriptの場合は型まで判断するときに使用できるみたいです。