【问题标题】:Create a password application. How to end loop after password is entered wrong 3 times创建密码应用程序。密码输入错误3次后如何结束循环
【发布时间】:2013-10-02 12:33:38
【问题描述】:

我是一名正在学习 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);
    }
}

所以这就是它现在的样子,但是当我输入密码错误时,它只说访问被拒绝一次,然后有点无法显示任何东西。我很确定我不能像这样在彼此之上有 2 个时间。而且当我正确输入密码时,它会一直要求我输入密码,这样它就不会关闭循环。而且只有在我正确输入时,它才会说“欢迎”

【问题讨论】:

  • 所以你知道,这不是一个强大或适当的身份验证方案。

标签: java loops


【解决方案1】:

介绍一个计数器

int remaining = 3;

并在else 分支中递减:

remaining--

检查它是否大于0。替换该行

while (reenter.equals("hello"));

用这个:

while (remaining > 0);

【讨论】:

  • 使用while (remaining != 0)效率更高,因为机器码指令少。
  • @zmirc 好吧,这个问题看起来很简单,不需要关心一两条机器代码指令。让我们慷慨一点。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    替换

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

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

    然后

     if (remaining > 0)
            System.out.println("Welcome");
        else
            System.out.println("You are banned");
    

    【讨论】:

      猜你喜欢
      • 2017-11-10
      • 1970-01-01
      • 2011-07-04
      • 1970-01-01
      • 1970-01-01
      • 2020-01-20
      • 2013-07-26
      • 2023-03-13
      • 1970-01-01
      相关资源
      最近更新 更多