【问题标题】:Code in if else statement with boolean condition [duplicate]带有布尔条件的 if else 语句中的代码[重复]
【发布时间】:2018-01-10 05:05:04
【问题描述】:

我在下面写了这个代码。由于我将布尔值分配为 false,因此在 if 语句中再次将 false 分配给 b 变量,因此条件为真,输出应为“hello”。但是,输出是“hi”。哪位大神可以赐教一下?

boolean b= false;

if (b=false){
    System.out.println("hello");        
}
else {  
    System.out.println("hi");
}

【问题讨论】:

  • if (b=false)中,=是赋值运算符
  • 欢迎来到 StackOverflow。请在发布任何内容之前尝试阅读How to Ask 部分。

标签: java boolean


【解决方案1】:

试试(b == false)(!b)

当您执行b=false 时,您正在检查赋值运算符,您想使用== 来检查相等性

【讨论】:

    【解决方案2】:

    当执行以下行时:

    if(b=false)
    

    false 被赋值给 b,然后 b 的值被用来评估 if 条件,这将变成

    if(false) 
    

    因此程序的控制权将转到 else 块。

    你可以这样做:

    if( !(b=false) ) { 
        System.out.println("hello"); 
    } 
    else { 
        System.out.println("hi"); 
    }
    

    【讨论】:

      【解决方案3】:

      你的问题是你的

      b=false 
      

      = 是一个赋值运算符。你需要的是==,它会比较。

      如果想检查一个布尔值是否为假,你也可以使用!b,它相当于b== false

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-17
        • 1970-01-01
        • 1970-01-01
        • 2014-02-02
        相关资源
        最近更新 更多