为什么java在if语句中比较Integers时需要双等号(==)?
例如
if(x = 3.141)
System.out.println("x is equal to pi.");
Run Code Online (Sandbox Code Playgroud)
是不正确的,它应该是
if(x == 3.141)
System.out.println("x is equal to pi.");
Run Code Online (Sandbox Code Playgroud)
我知道"=="用于比较整数,"="用于设置整数值,但为什么在if语句中这仍然是真的?
是否允许在if语句中为变量赋值(或启动新变量)?
有没有理由让任何人想要在一个if语句中为变量分配一个新值(如果是这样请提供一个例子)?
这似乎是一个应该已经有答案的问题,但我无法在这里找到一个或使用谷歌,如果这是一个重复的问题,请告诉我,我会立即删除它.
Thi*_*ilo 10
如果=有时进行分配,有时比较,这取决于你使用它的上下文,难道不会令人困惑吗?
这听起来像个坏主意,会引入错误.
另外,当前语法与C和C++兼容,因此很多人都熟悉它.
有没有理由有人想要在if语句中为变量赋一个新值(如果是这样请提供一个例子)?
它在while循环中很常见:
int b;
while ((b=in.read()) != -1){
Run Code Online (Sandbox Code Playgroud)