JavaScript - if文を1行で書いてみる
JavaScriptで「if文を1行で書く」といっても、①文字通り「if文」を1行で記述する方法と、 ②「if else文」を三項演算子(条件演算子)を使って1行で記述する方法があります。
ここでは両方の書き方と使用上の注意点について説明します。
「if文」を1行で記述する
次のようなif文があるとします。
if (a == 10){
b = a;
}
このif文を1行で記述してみます。
「波括弧{}なし」の場合
「波括弧{}なし」の場合は次のようになります。
if (a == 10) b = a;
「波括弧{}あり」の場合
「波括弧{}あり」の場合は次のようになります。
if (a == 10) {b = a;}
後者の場合、波括弧{} の後にセミコロン(;)をつけないようにしてください。
文の終わりにはセミコロンを付けますが、ブロックの終わりにはセミコロンは付けません。
関連記事: 波括弧(中括弧){}で囲まれたブロックの注意点「if else文」を三項演算子(条件演算子)を使って1行で記述する
「if else文」
次のサンプルコードは、「if else文」を使って「変数a」が奇数か偶数かを判定します。
if (a % 2 == 0){
str = "偶数";
} else{
str = "奇数"
}
三項演算子(条件演算子)
三項演算子はオペランド(被演算子)を3つ取るという意味です。
「?」と「:(コロン)」を使って記述します。
三項演算子(条件演算子)の構文は次の通りです。
条件式 ? 条件式がtrue時の式 : 条件式がfalse時の式
上の「if else文」を三項演算子(条件演算子)で記述すると次のようになります。
if (a % 2 == 0){
str = "偶数";
} else{
str = "奇数"
}
↓↓↓
(a % 2 == 0) ? str = "偶数" : str = "奇数";
また、次のように記述することもできます。
str = (a % 2 == 0) ? "偶数" : "奇数";
同じ変数(この場合は変数str)に値を代入する場合は、 後者の書き方の方がシンプルになります。
三項演算子(条件演算子)のまとめ
このように、三項演算子(条件演算子)を使って「if else文」を1行で書くことも出来ます。
ですが、初心者のうちは、素直に「if else文」を使った方がわかりやすいと思います。
慣れてきたら三項演算子(条件演算子)を使う方法も試してみてください。