2

私は最近、速記のifステートメントを発見し、オンラインで検索した後、明確な答えを見つけることができませんでした。

条件が真/偽の場合、2つのステートメントを実行することは可能ですか?

int x = (expression) ? 1 : 2;

例えば

int x = (expression) ? 1 AND 2 : 3;

彼らがそれを使用した例に出くわしたことがないので、それは不可能だと思いますが、見逃したくありません。

4

2 に答える 2

4

あなたは条件付き代入について話している。あなたが書いたものによって定義されているものを見るべきです:

int x = (expression) ? 1 AND 2 : 3;

つまり、「式」を評価し、真の場合は「1 AND 2」を実行してから値を x に代入します。'expression' が false と評価された場合、'3' が評価され、x に割り当てられます。したがって、間違いなく次のようなことができます。

int x = (expression) ? GetInt1() + GetInt2() : 345;

重要なのは、見つけたものが単なる省略形の if ではないということです。条件付き代入です。

于 2011-06-09T21:40:47.337 に答える
0

ステートメントで 2 つの値を返すことはできません。それが 3 値のすべてです。値を返すメソッド persay であれば省略形ではありません

于 2011-06-09T21:41:21.523 に答える