我正在学习Java,之前学过C语言。我发现两种语言之间有一个有趣的差异,那就是在Java中有一种叫做boolean
的类型,在C语言中则没有bool
/ean
类型,所以我们需要使用数字类型来表示布尔逻辑(0 == false
)。
我猜在Java中这样行不通:
int i = 1;
if (i)
System.out.println("i is true");
即使通过类型转换改变条件也不行:
if ((boolean)i)
所以除了像这样做:
if ( i != 0 )
有没有其他方法来执行类似C的逻辑检查,但针对int
类型?我只是想知道是否有Java的技巧允许在非布尔类型上进行布尔逻辑操作。
编辑:
上面的示例非常简单,容易导致狭隘的思维。当我最初提出问题时,我也在考虑从函数调用返回的非布尔值。例如Linux的fork()
调用。它并不直接返回一个int
,但我可以将数字返回值用于条件语句,如下所示:
if( fork() ) {
// do child code
这使得我能够处理子进程中的条件代码,而不对父进程进行处理(或在出现错误的情况下返回负结果)。
所以我现在还不了解足够的Java知识来提供一个好的“Java”示例,但那是我的最初意图。