【问题标题】:java - why does this code print the output it is supposed to print if a Boolean is true but the Boolean was declared to false?java - 如果布尔值为真但布尔值被声明为假,为什么这段代码会打印它应该打印的输出?
【发布时间】:2015-05-12 23:03:51
【问题描述】:

我有以下代码:

import java.util.*;
public class Test {
   public static void main(String[] args) {
   boolean b = false;
   if (b=true) 
      System.out.println("one. b = false");
   if (b)
      System.out.println("two. b = false");
   }
}

输出是:

one. b = false
two. b = false

我将 b 设置为 false 那么为什么它会打印 b 为 true 时的语句?

【问题讨论】:

    标签: java boolean


    【解决方案1】:

    你是在做分配,而不是比较

    if (b=true)
    

    你的意思是使用

    if (b==true)
    

    【讨论】:

      【解决方案2】:

      你需要使用。

      if (b) {
            System.out.println("one. b = true");
      } else {
            System.out.println("two. b = false");
      }
      

      如果您需要检查相等性,则需要使用“==”。但是由于您使用的是布尔值,因此您无需检查相等性,而是可以使用该值。

      【讨论】:

        【解决方案3】:

        问题是在 if 语句 b=true 你没有比较。我的意思是你没有告诉 java if b is equal to true,你在这里真正做的是将 true 设置为 b。因此,您可以打印两个 System.out.print 语句。因为在这两种情况下,值都是 true。

        考虑到这一点:

        • 为 b 设置值 true:boolean b = true;
        • 在 if 语句中使用布尔值

          if (b) {
          }
          

        避免这种说法

        if (b==true) {
        }
        

        【讨论】:

          【解决方案4】:

          请检查以下内容:

          import java.util.*;
          public class Test {
             public static void main(String[] args) {
                 boolean b = false;
                 if (b==true) 
                    System.out.println("one. b = " + Boolean.toString(b));
                 if (b)
                    System.out.println("two. b = " + Boolean.toString(b));
             }
          }
          

          【讨论】:

            【解决方案5】:

            不要尝试(b=true),而是(b==true)

            【讨论】:

            • b 是一个原语,它没有toString() 方法
            • 换句话说,Java 不是 C# :)
            猜你喜欢
            • 2013-07-02
            • 2013-06-05
            • 2012-02-20
            • 1970-01-01
            • 2014-12-10
            • 1970-01-01
            • 2014-04-12
            • 1970-01-01
            • 2016-04-02
            相关资源
            最近更新 更多