2017-05-26 92 views
2

三元運營商爲什麼下面的語句顯示錯誤,而編譯與縮小概念

int a=10,b=20; 
    byte c=(a<b)?40:50; 
    System.out.println(c); 
+1

如果去掉類型'byte'它會編譯。已在封閉範圍內聲明'b'。 –

+0

int a = 10,b = 20;字節c =(a

+0

現在會發生什麼 –

回答

3

B已經申報。

您可以嘗試

int a=10,b=20; 
byte c=(byte) ((a<b)?40:50); 
System.out.println(c); 
+0

如果您將任何變量作爲最終變量,則不能更改最終變量的值。所以,不需要轉換成字節。您可以嘗試:byte c =(10 <20)?40:50; –