【发布时间】:2012-11-28 03:58:35
【问题描述】:
我正在学习 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”示例,但这是我的初衷。
【问题讨论】:
-
没有。 (评论不要太短)
-
@sampson-chen - 这是一个 int 的布尔值,我的是一个布尔值的 int ......或者你认为这个问题是一样的吗?
-
@Mike 哎呀,抱歉;那是我的错误。
-
In C there is no bool- 呃,yes there is。 -
@BlueRaja-DannyPflughoeft -“C 中的标准类型,即不包括
,不包括 bool类型。” - 这样更好吗?
标签: java boolean int logical-operators