1.复合赋值运算符会进行类型转换
byte a = 3;
a = a + 3;
a += 3
上述代码中,a = a + 3 ; 是错误的, a + 3整体是一个 int 类型,不能赋值给 byte
而 a += 3; 它等价于 a = (byte) a + 3;
2.三元运算符中,表达式 1 和表达式 2 必须是可以赋值给接收变量的类型(或可以自动转换)
int a = 1;
int b = 2;
int c = a < b? a : b;//对
int d = a < b? 1.1 : 1.3;// 错
int e = a < b? (int)1.1 : (int) 1.3; // 对
double f = a < b? a : b + 3; // 对
第2句 d 中,我们不能将一个 double 类型的变量赋值给 int 类型
而在 f 中, int 类型 可以存放在 double 中。
170万+

被折叠的 条评论
为什么被折叠?



