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

  • mist64

    mist64

    30 Mayıs 2006
  • Richard Laxa

    Richard Laxa

    30 AĞUSTOS 2012
  • VOICE TV

    VOICE TV

    2 Aralık 2010

İLGİLİ SORU / CEVAPLAR