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

时间:2017-08-03 11:15:41

标签: java int boolean specifications

Java规范说(§4.2.5):

«整数或浮点表达式x可以转换为布尔值, 按照C语言约定,任何非零值都为真,由 表达式x!= 0。»

可能有人知道,他们的意思是什么转换方式?

2 个答案:

答案 0 :(得分:1)

这适用于那些使用C知识来到Java的人,它允许你编写这样的代码:

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

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

Found possible branch point: https://svn.host.ru/repo/trunk => https://svn.host.ru/repo/branches/branch_name, 13439
Found branch parent: (refs/remotes/origin/branch_name) a081660107eb24a999957a6874bdf4dd53568436
Following parent with do_switch
Successfully followed parent
fatal: update_ref failed for ref 'refs/remotes/origin/branch_name': refusing to update ref with bad name refs/remotes/origin/branch_name
update-ref -m r13440 refs/remotes/origin/branch_name 5858b0838db06456ae1de9395a46d1d3fe3c2017: command returned error: 128

答案 1 :(得分: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