我正在学习 Java,来自 C,我发现 boolean
类型的语言之间存在一个有趣的区别。在 C 中没有 bool
/ ean
所以我们需要使用数字类型来表示布尔逻辑( 0 == false
)。
我猜在 Java 中是行不通的:
int i = 1;
if (i)
System.out.println("i is true");
也不会通过类型转换改变条件:
if ((boolean)i)
所以除了做类似的事情:
if ( i != 0 )
有没有其他方法可以对 int
类型进行 C-ish 逻辑检查?只是想知道是否有任何 Java 技巧允许像这样的非布尔类型上的布尔逻辑。
编辑:
上面的例子非常简单,让自己陷入了狭隘的思维范围。当我最初问这个问题时,我也在考虑函数调用的非布尔返回。例如 Linux fork()
调用。它本身不返回 int
,但我可以很好地使用数字返回值作为条件,如下所示:
if( fork() ) {
// do child code
这允许我在条件中为孩子处理代码,而不是为父母这样做(或者在错误返回结果为负的情况下)。
所以目前我对 Java 的了解还不够多,无法给出一个好的“Java”示例,但这是我的初衷。
原文由 Mike 发布,翻译遵循 CC BY-SA 4.0 许可协议
在爪哇,
是检查整数
i
是否不同于zero
的惯用方法。如果
i
用作标志,它应该是boolean
类型而不是int
类型。