如何打破循环?

每个正在看这个问题的人。我有一个小问题,我没有解决。我有一个用户或经理可以登录的程序,输入检查登录的人是用户还是经理。不幸的是,我无法将它们分开。这就是我一直得到的。


Incorrect username or password. Try Again!

这是代码:


int check = 0;

    while(check == 0)

    {

        screen.displayString("Enter the username:  ");

        String usernameLogin = keypad.getString();

        screen.displayString("Enter the password:  ");

        String passwordLogin = keypad.getString();

        for (int i = 0; i < users.size(); i++) {

            if (users.get(i).getUsername().equals(usernameLogin) && users.get(i).getPassword().equals(passwordLogin)) {

                no = users.get(i).getId();

                check = 1;

                break;

            }

            else 

            {

                check = 0;

            }

        }

        if(check == 1)

        {

            break;

        }

        if (manager.getUsername().equals(usernameLogin) && manager.getPassword().equals(passwordLogin)) {

            no = manager.getId();

            check = 1;

            break;

        }

        else {

            check = 0;

        }

        if(check==0)

        {

            screen.displayStringLine("Incorrect username or password. Try Again!");

        }

    }

再次感谢您的帮助。


慕姐4208626
浏览 117回答 1
1回答

幕布斯7119047

首先对代码格式提出一些小建议,在每个花括号/代码块之后留下一个空行 - 它会更容易阅读因此,让我们通过遵循以下步骤来稍微清理一下您的代码:先做更简单的任务,这意味着这个应用程序中有很多用户,但只有一个经理,所以也许我们应该先检查是不是他,而不是浪费计算资源删除多余的变量 - 要打破循环,您不需要check变量,只需break正确登录后的语句您可以使用 for each 来遍历集合while (true) {&nbsp; &nbsp; screen.displayString("Enter the username:&nbsp; ");&nbsp; &nbsp; String usernameLogin = keypad.getString();&nbsp; &nbsp; screen.displayString("Enter the password:&nbsp; ");&nbsp; &nbsp; String passwordLogin = keypad.getString();&nbsp; &nbsp; if (manager.getUsername().equals(usernameLogin) && manager.getPassword().equals(passwordLogin)) {&nbsp; &nbsp; &nbsp; &nbsp; no = manager.getId();&nbsp; &nbsp; &nbsp; &nbsp; break;&nbsp; &nbsp; }&nbsp; &nbsp; for (User user : users) {&nbsp; &nbsp; &nbsp; &nbsp; if (user.getUsername().equals(usernameLogin) && user.getPassword().equals(passwordLogin)) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; no = users.get(i).getId();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp; screen.displayStringLine("Incorrect username or password. Try Again!");}此代码应该更易于调试 - 只需在包含if语句的两行上放置 2 个断点并检查值是否匹配。如果您发现一切看起来都不错,请检查字符串编码 - 可能存在不匹配(Java 默认使用 UTF8)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java