PR

【JavaScript】if-elseを1行に!三項演算子がかっこよさそうなので勉強してみた

【広告】

if else を使った条件分岐は理解できました。
三項演算子という、条件分岐をもっとすっきり書く方法があるようです。
早速勉強して使ってみました。

1行で書けるのはかっこいいですが、意味は分かりにくいですね。
何回も書いていけば慣れるかもしれないので、積極的に使っていきましょう。

90点以上なら合格、それ以外は不合格というコードを紹介するので、三項演算子の使い方をチェックしてください。

if-else

まずはif-elseを使って条件分岐コードを書きます。

function judgeScore(value) {
  if (value >= 90) {
    return '合格';
  } else {
    return '不合格';
  }
}

const score = 92;
console.log(`${score}点:${judgeScore(score)}`);

scoreが90以上なら合格、それ未満なら不合格を判定する関数です。
今回はscoreを92にしているので、コンソールに【92点:合格】と表示されます。

このif-else文を三項演算子を使って1行で書くと次のようになります。

if文をおさらいしたい方はこちら👇

三項演算子

同じ意味のコードを三項演算子を使って書きます。

function judgeScore(value) {
  return score >= 90 ? '合格' : '不合格';
}

const score = 92;
console.log(`${score}点:${judgeScore(score)}`);

scoreが90以上の場合は合格を返し、それ以外の場合は不合格を返します。

こちらもscoreを92にしているので、結果はif-else文と同じで、【92点:合格】とコンソールに表示されます。

scoreを85にすれば【85点:不合格】となります。

三項演算子「?」と「:」の解説

このコードの ?: は、それぞれ以下のような役割を持つ区切り記号だと考えてください。

1. ?(疑問符)の役割

? の前にある「条件式」に対して、「もし、この条件が正しかったら、答えは何ですか?」という疑問を投げかける区切りです。

  • score >= 90 (条件式) ? (この条件がなら、次へ)

2. :(コロン)の役割

: は、条件が正しくなかった場合の「別の答え」を示す区切りです。

  • ? の直後に書かれた答え(真の場合)と、その後の答え(偽の場合)を分けます。
  • もし、そうじゃなかったら、答えは何ですか?」という区切りだと考えると分かりやすいです。

3. 全体の構造

このコードは、以下の図のような構造になっています。

  条件式   ?   真の場合の答え   :   偽の場合の答え

ルールとして、以下のようになります。

  • ? には、判定したい 条件式 を書きます。
  • ? には、条件に 一致していた場合処理(答え) を書きます。
  • : には、条件に 一致しなかった場合処理(答え) を書きます。

if-elseと三項演算子、どっちを使ったらいいの?

処理が簡単であれば三項演算子、複雑ならif-elseが無難というイメージです。

if-elseを使った方がいい場合

  • 処理が複数行になったり、条件分岐が複雑な場合。
  • コードの可読性や将来的な保守性を重視する場合。
  • 複数の処理を実行したい場合や、あとで処理を追加する可能性がある場合。

三項演算子を使った方がいい場合

  • 条件分岐がシンプルで、結果を返すだけの短い処理の場合。
  • コードを簡潔に記述したい場合。

三項演算子を使ったミニアプリの作り方を解説👇

タイトルとURLをコピーしました