この構造は、コンピューター サイエンスおよびプログラミング技術では三項演算子と呼ばれます。
そしてウィキペディアは次の説明を提案しています:
コンピューター サイエンスでは、3 項演算子 (誤って 3 項演算子と呼ばれることもあります) は、3 つの引数を取る演算子です。引数と結果は異なる型にすることができます。C に似た構文を使用する多くのプログラミング言語は、条件式を定義する三項演算子 ?: を備えています。
Java だけでなく、この構文は PHP や Objective-C でも使用できます。
次のリンクでは、次の説明が提供されています。これは、理解するのに適しています。
三項演算子は、3 つの入力を操作する操作です。これは if-else ステートメントのショートカットであり、条件演算子とも呼ばれます。
Perl/PHP では、次のように機能します。
boolean_condition ? true_value : false_value
C/C++ では、次のように機能します。
logical expression ? action for true : action for false
これは、あまり複雑ではないいくつかの論理条件で読み取り可能な場合があります。それ以外の場合は、条件付きロジックの意図した組み合わせでIf-Else ブロックを使用することをお勧めします。
1 つのコード ステートメント行に対して、この三項演算子を使用してIf-Else ブロックを簡略化できます。
例えば:
if ( car.isStarted() ) {
car.goForward();
} else {
car.startTheEngine();
}
次と等しい場合があります。
( car.isStarted() ) ? car.goForward() : car.startTheEngine();
したがって、あなたの声明を参照すると:
int count = isHere ? getHereCount(index) : getAwayCount(index);
実際には、次のIf-Else ブロックと 100% 同等です。
int count;
if (isHere) {
count = getHereCount(index);
} else {
count = getAwayCount(index);
}
それでおしまい!
これが誰かの役に立てば幸いです!
乾杯!