1

重複の可能性:
Java ?: 演算子は何と呼ばれ、何をしますか?

一部のコードで?は、数式を実行するために a が使用されます。

それは何で、どのように使用しますか? 方程式の最終的な答えの例と理由を示すことは可能ですか?

int count = getChildCount();
int top = count > 0 ? getChildAt(0).getTop() : 0;
4

8 に答える 8

10

基本的には三項演算子です:

String mood = (isHappy == true)?"I'm Happy!":"I'm Sad!"; 

isHappy の場合、"I'm Happy!" です。"私は悲しいです!" それ以外は。

于 2012-10-25T17:54:45.900 に答える
4

x = () ? y : z;表記のようなものを意味していると思いますか?その場合、括弧内の式はブール値として評価されtrue x = yます。x = z

于 2012-10-25T17:54:35.630 に答える
4
int count = getChildCount();
int top = count > 0 ? getChildAt(0).getTop() : 0;

変数が 0 より大きいgetChildAt(0).getTop()場合、最上位の変数には の値が含まれることを意味し、それ以外の場合は次のようになります。count0

于 2012-10-25T17:56:22.447 に答える
2

私の推測では、次のように使用される三項演算子を参照していると思います。

<some condition> ? <some value> : <some other value>;

例えば:

int max = a > b ? a : b;

これは an の短縮形でありif、次と同等です。

int max;
if (a > b) {
    max = a;
} else {
    max = b;
}

ただし、コードで 1 行の結果を許可します。

うまく使えば、その簡潔さによってコードをより明確にすることができます。ただし、行が長くなりすぎたり、複雑になったりする場合は注意が必要です。用語が短い場合にのみ、コードが読みやすくなります。

于 2012-10-25T17:57:37.087 に答える
0

?評価式の は、 三項演算子 と呼ばれます。これは基本的にif() ... elseブロックの省略形です。

http://en.wikipedia.org/wiki/%3F :

于 2012-10-25T17:55:42.560 に答える
0

三項演算子について言及していると思います。これは、特定の種類の if ステートメントの省略形です。次のように、割り当てを行っている場所:

int dozen = (bakersDozen) ? 13 : 12;

bakersDozenが真であると仮定すると、 dozen13 になります。偽である場合、12 になります。

于 2012-10-25T17:56:05.287 に答える
0
int result = (a > b) ? 1 : 0;

と同じです

int result;
if (a > b)
  result = 1;
else
  result = 0;
于 2012-10-25T17:56:20.157 に答える
0

? 通常は 3 項 (または 3 項) 演算子です。それでは、それが何をしているのかを説明しましょう。

myValue = (a = b) ? 1 : 0;

最初の部分はあなたの状態です。「a は b に等しいか?」

2 番目の部分は、真の応答です。

3 番目の部分は、誤った応答です。

したがって、a が b と等しい場合、myValue は 1 になります。a が b と等しくない場合、myValue は 0 になります。

http://en.wikipedia.org/wiki/Ternary_operationを参照

于 2012-10-25T17:56:59.270 に答える