5


0

if / else vs三項演算子

評価時間を考慮して、次の2つは同等ですか?

if(condition1)
{
    //code1
}
else
{
    //code2
}

condition1? code1:code2

それとも構文的に違うだけなのでしょうか。

4 Answer


11


違いは、後者のステーションは、条件に基づいて値を返すために使用できることです。

たとえば、次の文があるとします。

if(SomeCondition()){text = "Yes"; } else {text = "No"; }

三項演算子を使用して、次のように書きます。

text = SomeCondition() "はい・いいえ";

最初の例では条件に基づいて文を実行し、2番目の例では条件に基づいて値を返します。


4


まあ… 前者の場合、 code1`と code2`の代わりに任意の量またはタイプ(式とステートメント)のコードを持つことができます。 後者の場合、それらは有効な式でなければなりません。


3


はい

利益だけがコード行を節約することです。


1


はい、これらは2つの異なる構文形式であり、同じように機能し、ほとんど同じようなコードがコンパイラによって出力されます。