SORU
10 NİSAN 2015, Cuma


Java'da üçlü operatör sadece 7 - Java 1.6 farklı ve daha düşük olduğundan Java bir ifade değerlendirmek?

Oracle Certified Associate, Java SE 8 Programcı 1 sınav için hazırlanıyor, üzerinde resmi Çalışma Kılavuzu: üçlü ifadesi hakkında şu paragraf geldim

Üçlü İfade Değerlendirme

İki ifadeler, aşağıdaki örnekle gösteren değerlendirilir diyor ki:

int y = 1;
int z = 1;
int a = y < 10 ? y   : z  ;

Burada, 2* *artışlarla sadece, ama z beklediğiniz gibi değil.

Karşısında tökezleyerek ben ne diyor paragraf (sarı işaretli) başlangıcıdır "Java 7, ...". Java 1.6 ile aynı kodu test ettim ve davranışlarında bir fark bulamıyorum. Java 1.6 her iki ifade de sadece bu Bilgi paragrafta verilen değerlendirmek için bekliyordum. Kimseye söylemek istediklerini bir fikri olan var mı "Java 7, ..."?

Düzenleme:Karışıklığı önlemek için: yazdıkları 'Java 7' vardı Java 7 Java 6'dan geçiş beri değişen bir şey üçlü operatörü ile ilgili Olarak bu Yana bu soru için aşağı kaynar,

CEVAP
10 NİSAN 2015, Cuma


Java 6 JLS:

Zaman, koşullu ilk işlenen ifadesi ifade gerekirse ilk değerlendirmiş, dönüşüm kutulama. sonuç üzerinde gerçekleştirilen; sonuç boolean bir değer için kullanılır ya ikinci ya da üçüncü işlenen ifade seçin:

  • Eğer ilk ifadenin değeri true ise, daha sonra ikinci ifadenin ifadesi seçilir.
  • Eğer ilk ifadenin değeri false ise, o zaman üçüncü işlenen ifadesi seçilir.

Seçilen işlenen bir ifade değerlendirilir ve sonuç. değer koşullu ifadesi olarak türüne dönüştürülür yukarıda belirtilen hususlara göre belirlenir. Bu dönüşüm içerebilir boks (§5.1.7) veya kutulama dönüştürme.Değil işlenen, ifade seçilen bu özel değerlendirme için değerlendirilmez koşullu deyim.

Benzer bir ifade de İDEA sürümleri 1.0 geri dönüyor görünür. Bu davranış, Java 7; çalışma kılavuzu sadece kötü biçimindedir değiştirmedi.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • natescamp

    natescamp

    30 NİSAN 2009
  • ShoSho

    ShoSho

    20 Ocak 2010
  • super1988guy

    super1988guy

    9 Aralık 2007

İLGİLİ SORU / CEVAPLAR