2017-05-26 122 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; –