我正在学习 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 技巧允许对像这样的非布尔类型进行布尔逻辑。
编辑:
上面的例子非常简单,并且产生了狭窄的思维范围。当我最初问这个问题时,我也在考虑函数调用的非布尔返回。例如 Linuxfork()
调用。它本身不返回int
,但我可以很好地使用数字返回值作为条件,如下所示:
if( fork() ) {
// do child code
这允许我处理子条件中的代码,而不是为父处理(或在错误返回结果为负的情况下)。
所以我目前对 Java 的了解还不够,无法给出一个好的“Java”示例,但那是我的初衷。