はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

【Unity】三項演算子(条件演算子)をかるくまとめてみた

はじめに

三項演算子(条件演算子)は?:を使い、条件を判定して、真と偽でそれぞれ異なる値を変数に代入します

この演算子についてかるくまとめてみました。

構文

using UnityEngine;

public class Hoge : MonoBehaviour
{

    void Start()
    {
        int a = 2;
        int b = 4;
        int num = a == b ? 1 : 0;
        Debug.Log(num);         //0
        num = a != b ? 1 : 0;
        Debug.Log(num);         //1
    }

}

このように条件式?条件式がtrueの時に返す値:条件式がfalseの時に返す値のように用います。

もし少しわかりづらいと思っても大丈夫、これは以下のコードと全く同じ意味になります。

//a == b ? 1 : 0;
if(a == b)
{
    num = 1;
}
else
{
    num = 0;
}

いつ使うべきか

やはり簡潔に書けることは魅力的ですが、読みにくいから使わないでくれと言う人もいます。
確かに三項演算子の中に三項演算子を使ったりnull合体演算子を使ったりするとかなり見づらくなる印象があります。

ただ簡潔さゆえに使えるところではなるべく使うべきでしょう。

これを加味すると、
?と:記号の後に書くコードがリテラル値(名前のない定数値)や変数などの単純な式のとき
使うべきだと思います。