我的代码应该继续询问正确的密码"直到它被正确给出,是否正确?

时间:2016-11-20 16:56:33

标签: java if-statement while-loop

while (true) {

            String password = "carrot";

            String inputtedPassword = reader.nextLine();
            System.out.println("Type the password:");

            if (password.equals(inputtedPassword)) {
                System.out.println("Right!");
            } else {
                System.out.println("Wrong!");
            }
            if (password.equals(inputtedPassword)) {
                break;
            }


        }

我正在做一个要求代码不断询问正确的密码"直到它被正确地给出,然后它可以停止询问。这是我编写的代码,当我执行它时它会做它应该做的事情,但是当我提交它时,我收到一条错误消息,说明"程序应该一直询问密码,直到它被正确地给出"。我很困惑。

1 个答案:

答案 0 :(得分:0)

您应该只运行代码并查看结果是否是预期的结果!

如果你这样做,你会看到它输入密码后输入“输入密码:” 。这是在打印前调用nextLine引起的。

你应该重新排序这两行:

System.out.println("Type the password:");
String inputtedPassword = reader.nextLine();

除此之外,您的代码似乎完美无缺。

但是,有些行是多余的。

此:

if (password.equals(inputtedPassword)) {
    System.out.println("Right!");
} else {
    System.out.println("Wrong!");
}
if (password.equals(inputtedPassword)) {
    break;
}

可缩短为:

if (password.equals(inputtedPassword)) {
    System.out.println("Right!");
    break;
} else {
    System.out.println("Wrong!");
}

此外,如果永远不会更改,我建议您将password更改为常量:

final String PASSWORD = "carrot";