【问题标题】:An integer or floating-point expression x can be converted to a boolean value整数或浮点表达式 x 可以转换为布尔值
【发布时间】:2017-08-03 11:15:40
【问题描述】:

Java 规范说(§4.2.5):

«可以将整数或浮点表达式 x 转换为布尔值, 遵循任何非零值都为真的 C 语言约定,由 表达式 x!=0。»

可能有人知道,他们的意思是什么转换方式?

【问题讨论】:

  • 它们只是意味着如果你有一个数字想要用作布尔值,你必须写x != 0(或任何变量恰好是)。 Java 不会像 C 那样自动将数字视为布尔值。

标签: java int boolean specifications


【解决方案1】:

这是为那些了解 C 知识的人准备的,它允许您编写这样的代码:

int x = ...
if (x) {
    ... // Do something
}

在上面,整数x 用于需要逻辑表达式的上下文中。 C 通过将x 与零进行比较,将其隐式转换为布尔值。等效的 Java 代码必须显式地进行比较:

int x = ...
if (x != 0) {
    ... // Do something
}

【讨论】:

    【解决方案2】:

    在纯 C 中,它可以在编译时解析为布尔值。 也就是说,它可以用作布尔值。

    int a = 1
    int b = 0
    
    if a:
        ...
        //This will run as it's true.
    if b:
        ...
        //This won't run as it's false
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-29
      • 2022-12-04
      • 2016-12-08
      • 1970-01-01
      • 2018-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多