Konstruk ini disebut Operator Ternary dalam Teknik dan Programing Ilmu Komputer.
Dan Wikipedia menyarankan penjelasan berikut:
Dalam ilmu komputer, operator ternary (kadang-kadang salah disebut operator tersier) adalah operator yang mengambil tiga argumen. Argumen dan hasil dapat dari berbagai jenis. Banyak bahasa pemrograman yang menggunakan sintaks mirip-C menampilkan operator ternary,?:, Yang mendefinisikan ekspresi kondisional.
Tidak hanya di Jawa, sintaks ini tersedia dalam PHP, Objective-C juga.
Di tautan berikut ini memberikan penjelasan berikut, yang cukup bagus untuk memahaminya:
Operator ternary adalah beberapa operasi yang beroperasi pada 3 input. Ini adalah jalan pintas untuk pernyataan if-else, dan juga dikenal sebagai operator bersyarat.
Dalam Perl / PHP berfungsi sebagai:
boolean_condition ? true_value : false_value
Dalam C / C ++ berfungsi sebagai:
logical expression ? action for true : action for false
Ini mungkin dapat dibaca untuk beberapa kondisi logis yang tidak terlalu rumit atau lebih baik menggunakan blok If-Else dengan kombinasi yang diinginkan dari logika kondisional.
Kita dapat menyederhanakan blok If-Else dengan operator ternary ini untuk satu baris pernyataan kode.
Sebagai contoh:
if ( car.isStarted() ) {
car.goForward();
} else {
car.startTheEngine();
}
Mungkin sama dengan yang berikut ini:
( car.isStarted() ) ? car.goForward() : car.startTheEngine();
Jadi, jika kami merujuk pada pernyataan Anda:
int count = isHere ? getHereCount(index) : getAwayCount(index);
Ini sebenarnya setara 100% dari blok If-Else berikut :
int count;
if (isHere) {
count = getHereCount(index);
} else {
count = getAwayCount(index);
}
Itu dia!
Semoga ini bisa membantu seseorang!
Bersulang!