Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么int b=1*a=10;的类型不匹配;?_Java - Fatal编程技术网

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发出的错误可能会很有趣。