Java 整数或浮点表达式x可以转换为布尔值

Java 整数或浮点表达式x可以转换为布尔值,java,int,boolean,specifications,Java,Int,Boolean,Specifications,Java规范规定(§4.2.5): «整数或浮点表达式x可以转换为布尔值, 遵循任何非零值为真的C语言约定 表达式x=0.» 也许有人知道,它们的转换方式是什么意思?在纯C中,它可以在编译时解析为布尔值。 也就是说,它可以用作布尔值 int a = 1 int b = 0 if a: ... //This will run as it's true. if b: ... //This won't run as it's false 这是为那些熟悉C语言的Jav

Java规范规定(§4.2.5):

«整数或浮点表达式x可以转换为布尔值, 遵循任何非零值为真的C语言约定 表达式x=0.»


也许有人知道,它们的转换方式是什么意思?

在纯C中,它可以在编译时解析为布尔值。 也就是说,它可以用作布尔值

int a = 1
int b = 0

if a:
    ...
    //This will run as it's true.
if b:
    ...
    //This won't run as it's false

这是为那些熟悉C语言的Java人士准备的,它允许您编写如下代码:

int x = ...
if (x) {
    ... // Do something
}
上面,整数
x
用于需要逻辑表达式的上下文中。C通过将
x
与零进行比较,隐式地将其转换为布尔值。等效Java代码必须显式执行比较:

int x = ...
if (x != 0) {
    ... // Do something
}

他们的意思是,如果你有一个数字要用作布尔值,你必须写
x!=0
(或任何变量)。Java不会像C那样自动将数字视为布尔值。