【问题标题】:Boolean and if mistake [duplicate]布尔值和如果错误[重复]
【发布时间】:2015-06-19 21:33:47
【问题描述】:

我的代码有问题。这是过程 -

  • 首先输入您的姓名
  • 然后你输入你的年龄
  • 然后输入密码(默认值为“anybody”)

可以毫无问题地输入姓名和年龄,但程序评估密码时出错。正确输入密码后,它仍然返回 false。

请帮帮我!! 谢谢。

    import java.util.Scanner;

    public class MyClass {

    public static void main(String[] args) {
        String name;
        int age;
        boolean trueOrFalse;
        boolean trueOrFalse2;

        String builtInPassword = "anybody";

        Scanner keyBoardInput = new Scanner(System.in);

            System.out.print("Please enter your First name: ");
            name = keyBoardInput.next();
            System.out.print("Please enter your age: ");
            age = keyBoardInput.nextInt();
            trueOrFalse = false;
            trueOrFalse2 = true;
            System.out.print("Please enter your Password: ");
        if (keyBoardInput.next() == builtInPassword) {
            System.out.println(trueOrFalse2);
        } else {
            System.out.println(trueOrFalse);
        } 

    }
}

【问题讨论】:

    标签: java if-statement boolean


    【解决方案1】:

    在 Java 中比较两个字符串时,您希望使用 .equals() 方法。这将比较两个字符串的值,而 == 将比较引用。

    String test = "test";
    if(test.equals("test")) {
        //Do something
    }
    

    【讨论】:

    • 谢谢。请在eclipse等软件中输入这些代码。在此更改编译器后,不要让输入密码并显示错误答案!
    • if (keyBoardInput.equals(builtInPassword)) { System.out.println(trueOrFalse2); }
    【解决方案2】:

    你需要像这样在字符串上使用 .equals():

    public static void main(String[] args) {
        String name;
        int age;
        boolean trueOrFalse;
        boolean trueOrFalse2;
    
        String builtInPassword = "anybody";
    
        Scanner keyBoardInput = new Scanner(System.in);
    
            System.out.print("Please enter your First name: ");
            name = keyBoardInput.next();
            System.out.print("Please enter your age: ");
            age = keyBoardInput.nextInt();
            trueOrFalse = false;
            trueOrFalse2 = true;
            System.out.print("Please enter your Password: ");
        if (keyBoardInput.next().equals(builtInPassword)) {
            System.out.println(trueOrFalse2);
        } else {
            System.out.println(trueOrFalse);
        } 
    }
    

    【讨论】:

      【解决方案3】:

      谢谢你解决了我的问题。 我找到了另一种方法:

      if (keyBoardInput.hasnext(builtInPassword)) {
          System.out.println(trueOrFalse2);
      } else {
          System.out.println(trueOrfalse)
       }
      

      【讨论】:

        猜你喜欢
        • 2016-05-18
        • 1970-01-01
        • 2017-02-08
        • 2012-10-04
        • 1970-01-01
        • 2016-07-06
        • 2018-06-30
        • 1970-01-01
        • 2013-11-04
        相关资源
        最近更新 更多