【发布时间】:2021-02-17 13:23:43
【问题描述】:
我有以下 C 代码。我想写一个 Java 版本的 C 条件,但我不知道 C 数值运算符在 if 语句中代表什么布尔运算符。
C代码是:
if ( (n >= 1) * (n < 10) + (n == 0) )
{
printf("A\n");
}
else
{
printf("B\n");
}
return 0;
* 和 + 转换成什么布尔运算符?
【问题讨论】:
-
我不得不问:这是一个测验还是有人真的在生产代码中加入了类似的东西?
-
每次比较的结果是 0 或 1。如果将这些数字放在表达式中,您可以将 */+ 的行为与逻辑 AND/OR 操作进行比较。
-
C 关系和逻辑表达式在满足运算符条件时计算为 1,在不满足时计算为 0。
-
如果这是某种测验问题,正确答案是“没有答案是可能的”。
n的类型尚未指定,因此无法确定 C 代码是否可以翻译成 Java。例如,如果n是一个指针怎么办? Java 中甚至不存在指针。 -
@FedericoklezCulloca 是的,这是一个测验问题的一部分,但我不是要求解决问题,这只是过程的一部分,所以我可以自己获得解决方案。
标签: java c logical-operators boolean-expression