5

重複の可能性:
Javaとは何ですか?:演算子が呼び出され、それは何をしますか?

こんにちは、私はjava ?:演算子が何と呼ばれるか知っていますか、私はそれがどのように機能するかについての情報を見つけようとしていますが、私はそれが何と呼ばれるかわかりません、入力しますか?:googleで正しい結果を与えません。

4

6 に答える 6

23

これは条件演算子です。

三項演算子と呼ぶ人もいますが、それは実際にはオペランドの数を示しているだけです。特に、Javaの将来のバージョンでは、(完全に合理的に)別の三項演算子が導入される可能性がありますが、演算子の名前は条件演算子です。

言語仕様のセクション15.25を参照してください。

条件演算子?:1つの式のブール値を使用して、他の2つの式のどちらを評価するかを決定します。

于 2010-06-21T14:49:48.863 に答える
12

三元はあなたが探している言葉です。

于 2010-06-21T14:49:06.230 に答える
8

JLS 15.25 条件演算子 ? :

条件演算子 ? :は、1 つの式のboolean値を使用して、他の 2 つの式のどちらを評価するかを決定します。

JLS 15.28 定数式

コンパイル時の定数式は、プリミティブ型の値を表す式、またはString突然完了しない a であり、次のもののみを使用して構成されます。

  • 三項条件演算子? :

したがって、Java 言語仕様では、これを (三項) 条件演算子と正式に呼んでいます。


Javaコーディング規約 - インデント

以下に、三項式をフォーマットする 3 つの許容可能な方法を示します。

alpha = (aLongBooleanExpression) ? beta : gamma;  

alpha = (aLongBooleanExpression) ? beta
                                 : gamma;  

alpha = (aLongBooleanExpression)
        ? beta 
        : gamma;  
于 2010-06-21T14:50:34.413 に答える
6

これは、三項演算子または条件付き演算子として知られています (質問者によって異なります)。

この疑似コードのように、単一行の条件ステートメントを実行できます

print a==1 ? 'a is one' : 'a is not one'

Jon Skeetが指摘しているように、適切な名前は条件演算子ですが、3つのオペランドがあるため、三項演算子です。

于 2010-06-21T14:50:23.030 に答える
2

Do you mean for an if else statement? Look up the word ternery.

int x = 2;
String result = x > 1 ? "a" : "b";

equates to:

int x = 2;
String result = "";
if (x > 1) {
   result = "a";
} else {
   result = "b" ;
}
于 2010-06-21T14:53:05.247 に答える
1

これは条件演算子と呼ばれますが、三項演算子と呼ばれることもよくあります(これは、すべて3つのオペランドをとる演算子のクラスですが、Javaではそのような出口は1つだけ、つまり条件演算子です)。

単に言語(英語)の使用法エラーである三次演算子と呼ばれることもあります

これはc#の場合ですが、Javaにも同じことが当てはまります

于 2010-06-21T14:53:57.093 に答える