web-dev-qa-db-ja.com

「?」とはJavaの意味ですか?

疑問符が何なのかわかりません(?)Javaの略で、私は小さなプログラム、Nim-gameをやっていた。助けを求めて本を探していて、この声明を見ました:

int pinsToTake = (min >= 2) ? 2 : 1;

私はそれを理解していません、何が?表現、ifステートメントと関係があるかもしれませんが、変数に入れますか?そしてその :何か「他の」ことができますか? (私が今言ったことは非常に誤解を招く可能性があります)

10
Alexein

someval =(min> = 2)? 2:1;

これは三項演算子と呼ばれ、if-elseとして使用できます。これはと同等です

if((min >= 2) {
   someval =2;
} else {
   someval =1
}

詳細と使用法については、これに従ってください チュートリアル

24

その_ternary operator_は条件演算子とも呼ばれ、外観は 参照

Object bar = foo.isSelected() ? getSelected(foo) : getSelected(baz);のように

例えば。 _operand1 ? operand2 : operand3_

  • オペランド1が真の場合はオペランド2が返され、そうでない場合はオペランド3が返されます。
  • operator1はブール型である必要があります
  • operator1は、ブール型に評価される式にすることができます
  • オペランド1およびオペランド2は、プロモート可能な数値型またはキャスト可能なオブジェクト参照であるか、nullである必要があります。
  • オペランド2またはオペランド3の一方がバイトでもう一方がショートの場合、戻り値のタイプはショートになります
  • オペランド2またはオペランド3の一方がbyte、short、またはcharであり、もう一方が他のオペランド範囲内に収まる定数int値である場合、戻り値の型は他のオペランドの型になります
  • それ以外の場合は、通常の2進数の昇格が適用されます
  • オペランド2またはオペランド3の一方がNULLの場合、戻り値のタイプはもう一方のオペランドのタイプになります。
  • オペランド2とオペランド3の両方が異なるタイプである場合、それらの1つは他のタイプと互換性がある(キャスト可能)必要があります 参照
8
Harmeet Singh

その意味は:

if(min >= 2) 
   someval =2;
else 
   someval =1

三項演算子 これを参照Java

4
CloudyMarble

それは三項演算子です。 詳細については、Oracleのドキュメントを確認してください 。簡単に言うと、これはif-elseステートメントであり、1行で実行でき、メソッド内で使用したり、変数値を定義したりできます。

構文:

boolean_expression ? do_if_true : do_if_false;

If-elseステートメントとの並列処理:

if(boolean_expression)
    //do_if_true;
else 
    //do_if_false;

do_if_truedo_if_falseでは1行のコードしか実行できないため、意図的に角かっこを使用しませんでした。

使用例:

boolean hello = true;
String greetings = hello ? "Hello World!" : "No hello for you...";

これにより、ブール変数someStringがtrueと評価されるため、hello"Hello World!"として設定されます。一方、次の式をネストできます。

boolean hello = true;
boolean world = false;

String greetings = hello ? (world ? "Hello World!" : "Hello Stranger!") : "No hello for you...";

この場合、あいさつは値として"Hello Stranger!";になります。

4
Fritz

Ternary If演算子 と呼ばれ、if...elseの省略形です。

1
codebox

「?:」は、ifelseステートメントと同等の3項演算子です。

あなたの例では:

   pinsToTake = (min >= 2) ? 2 : 1 

min> = 2の場合は、pinsToTakeに2を割り当て、それ以外の場合は1を割り当てます。

0
Razvan
max = (a > b) ? a : b;

(a> b)? a:b; aまたはbの2つの値のいずれかを返す式です。
条件(a> b)がテストされます。 trueの場合、最初の値aが返されます。 falseの場合、2番目の値bが返されます。
返される値は、条件付きテストに依存します、a> b。条件は、ブール値を返す任意の式にすることができます。

0
Chris Shanks

これは条件演算子と呼ばれます。これがその仕組みです。 minが2以上の場合、?の後の最初の値つまり、ここでは2が対応する変数に割り当てられます。そうでない場合、ここで1である2番目の値が割り当てられます。

0
Amrit Pal

このリンク 必要なものがすべて表示されます。

アーカイブのための要約:

これは条件演算子と呼ばれます。これは、次の3つの用語を使用する三項演算子です。

BooleanExpression? Expr1:Expr2

BooleanExpressionが評価されます。 trueの場合、式全体の値はExpr1です。 falseの場合、式全体の値はExpr2です。

したがって、ifステートメントと同じ種類の目的を果たしますが、ステートメント全体ではなく用語です。つまり、ステートメント全体を使用できない場所に埋め込むことができます。

0
Michael A