Java 为什么int b=1*a=10;的类型不匹配;?
在我的项目工作中,我编写了以下代码Java 为什么int b=1*a=10;的类型不匹配;?,java,Java,在我的项目工作中,我编写了以下代码 int a=10; int b=1*a=10;<----- ~~~~~~ 我知道eclipse建议我将b类型更改为布尔型 它在cmd中给出了未检测的类型错误/eclipse中的类型不匹配为什么 根据我的理解,错误应该在赋值的左侧,必须是可变的 注:对于-、+、/等也会发生同样的情况。将a=10放入括号eq中 int b=1*(a=10); Java无法将1*a=10解析为变量,因为1*a是表达式编译器将1*a=10作为表达式。它感觉您需
int a=10;
int b=1*a=10;<-----
~~~~~~
我知道eclipse建议我将b类型更改为布尔型
它在cmd中给出了未检测的类型错误/eclipse中的类型不匹配为什么
根据我的理解,错误应该在赋值的左侧,必须是可变的
注:对于-、+、/等也会发生同样的情况。将a=10放入括号eq中
int b=1*(a=10);
Java无法将1*a=10解析为变量,因为1*a是表达式编译器将1*a=10作为表达式。它感觉您需要检查表达式是否为true,并相应地在变量b中存储布尔值true或false。它推断,对于这样的赋值,b的数据类型应该是布尔值,而不是int。因此,它给出了一个类型不匹配错误。希望这是有意义的:在第二行中你想做什么?嗯,javac给出了一个更隐晦的错误:错误:意外类型。。。。必需:找到变量:值。箭头指向*。不太确定该怎么办。。。另外,当我将代码复制粘贴到Eclipse中时,我得到了令牌=,@TAsk上的语法错误,我不知道,因此我没有给出答案。至少从最初的Eclipse错误来看,Eclipse编译器似乎认为您需要,如果它真的困扰您,请随时为Eclipse提交错误报告。我有点怀疑这会导致什么,因为代码无论如何都不会编译,但了解为什么会发出特定的错误而不是javac发出的错误可能会很有趣。