为什么类型不匹配int b = 1 * a = 10;?

时间:2014-07-01 10:22:40

标签: java

在我的项目工作期间,我写了以下代码。

int a=10;
int b=1*a=10;<-----
       ~~~~~~

我知道eclipse建议我将b的类型更改为boolean ????。

它提供unextected type error in cmd/Type mismatch in eclipse 为什么

根据 我错误 left hand side of assignment must be variable

(注意: -,+,/等也会发生同样的事情。)

2 个答案:

答案 0 :(得分:3)

编译器将(1*a=10)作为表达式。您觉得要检查表达式是否为true,并相应地在变量b中存储Boolean值(true或false)。它推断出对于这样的分配,b的数据类型应该是Boolean而不是int。因此,它给出了类型不匹配错误。希望有道理:)

答案 1 :(得分:1)

将a = 10放入括号eq

int b=1*(a=10);

Java无法将1 * a = 10解析为变量,因为Operator Precedence和1 * a是表达式