Vis*_*nde 1 java integer boolean
早些时候,我有b=true一个 if 条件,它被视为布尔值。但这同样不适用于整数。因为x=1我收到错误
无法从 int 转换为 boolean。
下面是代码片段。
public class Tester {
public static void main(String[] args) {
boolean b = false;
if (b = true)
System.out.println("b true");
else
System.out.println("b false");
int x = 0;
if (x = 1)
System.out.println("x 1");
else
System.out.println("x 0");
}
}
Run Code Online (Sandbox Code Playgroud)
在运行时,赋值表达式的结果是赋值发生后变量的值。赋值表达式的结果本身并不是变量。
赋值实际上是表达式。他们也评估一个值。什么价值?分配给变量的值。因此,如果我们忽略赋值的副作用,您的 if 语句相当于:
boolean b = false;
if (true)
System.out.println("b true");
else
System.out.println("b false");
int x = 0;
if (1)
System.out.println("x 1");
else
System.out.println("x 0");
Run Code Online (Sandbox Code Playgroud)
显然,if (1)这是无效的,因为只有boolean值可以进入()if 语句。