19

C には、省略形の IF-ELSE ステートメントの次の構文があります。

    (integer == 5) ? (TRUE) : (FALSE);

ステートメントの一部 (TRUE または FALSE) のみを必要とすることがよくあり、これを使用します。

    (integer == 5) ? (TRUE) : (0);

この簡略表記を使用して、ステートメントの ELSE 部分を含めない方法があるかどうか疑問に思っていましたか?

4

2 に答える 2

15

演算子?:は値を返す必要があります。「else」の部分がなかったら、ブール式が false のときに何を返しますか? 他の言語では適切なデフォルトは null かもしれませんが、おそらく C ではそうではありません。「if」を実行するだけで、値を返す必要がない場合は、入力ifがはるかに簡単になります。

于 2013-09-05T21:33:34.980 に答える
9

問題は、then 部分と else 部分の両方なしで次の式を何とか書けるかどうかです。

(integer == 5) ? (THENEXPR) : (ELSEEXPR);

then 部分のみが必要な場合は、&& を使用できます。

(integer == 5) && (THENEXPR)

else 部分のみが必要な場合は || を使用します。

(integer == 5) || (ELSEEXPR)
于 2017-10-17T23:26:46.893 に答える