2

このifステートメントに相当するものを知りたいです。

if (condition) {
        // do something
    }else{
        // do nothing

    }

条件演算子の使用:

(condition) ? // [do nothing] : {do nothing} "
4

6 に答える 6

2

条件演算子を使用して「何もしない」ことはできません。両方の式をにキャストできますが、常に両側に有効な式が必要ですvoid

于 2013-03-15T10:31:52.090 に答える
2

これは、三項演算子 ( ?: ) の欠点の 1 つです。

3 か所すべてに式が必要です。それらをスキップすることはできません。

あなたはそれを微調整することができますが、その真の部分および/または偽の部分は次のように割り当てることができます:

int big=100;
big= (10 > 100) ? 0 : big;
于 2013-03-15T10:45:13.547 に答える
0
if (!condition) {
        // do something
    }else{
        // do nothing

    }

今すぐ!beforecontitionを見てください:-)

!!条件が「if」を「ifnot」に切り替える前に..。

それはあなたが探していたものですか?

于 2013-03-15T10:31:23.680 に答える
0

通常のコードでは、答えは同等のものはありません。式のすべての部分式には値が必要ですが...

以下は推奨事項ではありません

一般的なケースでは、次の行に沿った何かが機能するはずです。

condition ? ( (^{ do something })(), 0 ) : 0;

それは一般的な場合です。何かを行う場合は、単一の非複合ステートメントです。メソッド呼び出しなど。次に、ブロックをドロップして以下を提供できます。

condition ? (do something, 0) : 0;

繰り返しますが、これは実際のコードでは推奨されません!

于 2013-03-15T11:00:07.717 に答える
0

あなたはこのようなことをすることができます

someBool ? [self someFunction] : (^{})(); //empty block
于 2013-03-15T11:00:52.917 に答える
0
originalValue = (condition) ? newValue : originalValue

次に、コンパイラは、自分自身へのoriginalValueの不要な代入を削除する必要があります。

GCC には拡張機能があり、探しているものにさらに何かを与えることができます。

originalValue = condition ?: newValue;

したがって、clangでも利用できる場合があります。あなたはしなければならないでしょう!状態ですが。

于 2013-03-15T10:49:37.870 に答える