16 NİSAN 2015, PERŞEMBE
Neden bu deyimi, atama ve eşitlik denetimi ile, yanlış değerlendiriyor?
Nasıl bir Java yokdeyimbu bir ayrıcalık ve ne zaman bir eşitlik birlikte OR
-d kontrol?
public static void test() {
boolean test1 = true;
if (test1 = false || test1 == false) {
System.out.println("TRUE");
} else {
System.out.println("FALSE");
}
}
Neden bu YANLIŞ baskı mı?
CEVAP
16 NİSAN 2015, PERŞEMBE
İfade düşündüğün gibi değil ayrıştırılır. Değil
(test1=false) || (test1 == false)
bu durumda sonuç true
olurdu ama
test1 = (false || test1 == false)
false || test1 == false
ifadenin değeri ilk bilgisayarlı ve test1
true
hesaplama girmek için ayarlandığından, 9**.
Bu sebepten, ayrıştırılmış bu şekilde precedence ||
daha düşük ==
operatör, ama daha yüksek öncelik atama operatörü =
.
Bunu Paylaş:
Neden iostream::bir döngü durumu yanlı...
Neden std kullanmak yanlış mı::auto_pt...
Neden Objective-C delegeler genellikle...
Neden “(çalışırken !feof (dosya) )” ya...
Neden örneğin dönüş bazı rakamları yan...