Yanıtlar:
Buna, üçlü bir operatör olan Koşullu Operatör denir .
Bu formu içinde bulunmaktadır: condition
? value-if-true
: "O zaman" ve "başka" olarak value-if-false
düşünün .?
:
Kodunuz şuna eşdeğerdir:
if (max != 0)
hsb.s = 255 * delta / max;
else
hsb.s = 0;
addition
önceki ve sonraki ifadelerde çalışan bir ikili operatördür (örn. 1 + 2 artı 1 ve 2'de çalışır) veya olumsuzlama tek bir operatördür (örn. -X burada x değeri reddedilir).
Parantezle şu şekilde yazıldığında bu muhtemelen biraz daha açıktır:
hsb.s = (max != 0) ? (255 * delta / max) : 0;
Yaptığı şey, ilk parantez içindeki parçayı değerlendirmektir. Sonuç doğruysa? ve önce: döndürülür. Yanlışsa, aşağıdakileri izleyen: döndürülür.
? :
bu üçlü operatör değil mi?
var x= expression ? true:false
?: sorunlar else {}
ve kısa süreli bir durumdur if(){}
. Yani kodunuz bununla değiştirilebilir:
if(max != 0){
hsb.s = 225 * delta / max
}
else {
hsb.s = 0
}
Buna dikkat et. -1! = True ve -1! = False olmasına rağmen A -1 doğru olarak değerlendirilir. Güven bana, bunun olduğunu gördüm.
yani
-1? "true side": "yanlış taraf"
"gerçek taraf" olarak değerlendirir
Infinity
(sıfıra bölme nedeniyle) ayarlanmasından kaçınıyor gibi görünüyor .