【问题标题】:Boolean variable布尔变量
【发布时间】:2019-04-21 10:02:32
【问题描述】:

我以为 boolean 的默认值是 false?为什么它会打印真实的陈述呢? 我的输出再见了


public class Test {

public static void main (String [] args) {

if(false)
    System.out.print("hello");

else System.out.print("goodbye");
}
}

【问题讨论】:

  • 这与布尔变量的默认值无关。如果() 中的表达式计算结果为false,则else 分支执行,它在您的代码中执行。你期望它输出什么?你能解释一下你为什么期望它输出那个吗?
  • 什么默认值?什么true 声明?怎么了?你期待什么?

标签: java if-statement boolean


【解决方案1】:

您的代码不使用布尔值的默认值。 你总是打印System.out.print("goodbye");,因为这部分是真的。 为此,请使用以下代码


public class Test {
    static boolean defaultValue;
public static void main(String[] args) {
System.out.println("Default value is "+defaultValue); if(defaultValue) System.out.println("hello"); else System.out.println("goodbye"); } }

【讨论】:

    【解决方案2】:

    清道夫在评论中告诉你的是正确的。您似乎对我认为的语法有错误的印象。以您提供的以下代码为例。

    if (false) {
        System.out.print("hello");
    }
    

    if 块中的代码将从不运行,因为 表达式 false 将始终评估为布尔值 false。您要求 Java 执行以下操作:'嘿,运行此代码 if 我放在括号内的结果为 true,但您放入括号内的内容将 always 评估为 false .这就是为什么 java 将始终在您的示例中运行 else 块内的代码。

    我希望这能澄清一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-03
      • 1970-01-01
      • 1970-01-01
      • 2021-01-08
      相关资源
      最近更新 更多