Java 创建一个密码应用程序。密码输入错误3次后如何结束循环

Java 创建一个密码应用程序。密码输入错误3次后如何结束循环,java,loops,Java,Loops,我是一名初级程序员,学习IB计算机科学,我正在从课本上学习做练习。在用户错误输入密码3次后,如何结束此循环 public class Password { public static void main(String[]args) { int remaining = 3; String reenter="hello"; do { String password=IBIO.inputStrin

我是一名初级程序员,学习IB计算机科学,我正在从课本上学习做练习。在用户错误输入密码3次后,如何结束此循环

public class Password
{
    public static void main(String[]args)
    {
        int remaining = 3;
        String reenter="hello";
        do
        {

            String password=IBIO.inputString("Please enter the password: ");
            if (password.indexOf("hello")>-1)
            {
                System.out.println("Welcome");
            }
            else
            {
                System.out.println("Access Denied");
                remaining--;
            }
           reenter=IBIO.inputString("Enter the password: ");

        }
        while (reenter.equals("hello"));
        while (remaining > 0);
    }
}
这就是它现在看起来的样子,但当我输入错误的密码时,它只会说拒绝访问一次,然后就无法显示任何内容。我敢肯定,我不可能像那样有两个以上的时间。而且,当我正确输入密码时,它会不断要求我输入密码,这样它就不会关闭循环。只有每隔一次输入正确时,它才会说“欢迎”

引入计数器

int remaining = 3;
并在
else
分支中递减:

remaining--
检查其是否大于0。更换线路

while (reenter.equals("hello"));
为此:

while (remaining > 0);

您可以创建变量,并在用户每次输入密码时递增该变量。完成三次后,可以退出方法

更换

while (reenter.equals("hello"));
while (remaining > 0);

然后


因此,您知道,这不是一个强的或适当的身份验证方案。在(剩余!=0)时使用
更有效,因为机器代码指令更少。@zmirc嗯,这个问题看起来很简单,不必关心一两条机器代码指令。让我们慷慨一点。
while (reenter.equals("hello") && remaining > 0);
 if (remaining > 0)
        System.out.println("Welcome");
    else
        System.out.println("You are banned");