Java 如何打破循环?

Java 如何打破循环?,java,Java,每一个关注这个问题的人。我有一个小问题没有解决。我有一个程序,用户或经理可以登录,输入检查登录的人是用户还是经理。不幸的是,我不能把它们分开。这是我一直都能得到的 Incorrect username or password. Try Again! 代码如下: int check = 0; while(check == 0) { screen.displayString("Enter the username: "); String usern

每一个关注这个问题的人。我有一个小问题没有解决。我有一个程序,用户或经理可以登录,输入检查登录的人是用户还是经理。不幸的是,我不能把它们分开。这是我一直都能得到的

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!");
        }
    }

再次感谢您的帮助。

首先给出一些关于代码格式的小建议,在每个大括号/代码块留下一行空行后,它将更易于阅读

因此,让我们按照以下步骤稍微清理一下代码:

先做一些简单的任务,这意味着这个应用程序中有很多用户,但只有一个经理,所以我们应该先检查一下是不是他,不要浪费计算资源 删除冗余变量-要中断循环,不需要check变量,只需要在正确登录后使用break语句 可以使用for each遍历集合 这段代码应该更容易调试-只需在包含if语句的两行上放置2个断点,并检查值是否匹配。
如果您看到一切都很好,请检查字符串编码-可能Java默认使用的UTF8不匹配。manager是manager类型的对象。users是用户对象的arraylist。这些函数是管理器和用户的每个字段的getter函数。是否输入了错误的用户名或密码?对mesairamch04来说,逻辑看起来很好,是的,用户名和密码是正确的,因为我将它们存储在arraylist中,并且在输入用户名和密码时看到了它们。getString方法是否可能在最后插入换行符?什么是keypad?keypad.getString返回什么?例如,是否需要修剪线终止符?哈,我们两个想法一样谢谢你的建议。这很有帮助,因为现在代码可以区分管理者和用户。
while (true) {
    screen.displayString("Enter the username:  ");
    String usernameLogin = keypad.getString();
    screen.displayString("Enter the password:  ");
    String passwordLogin = keypad.getString();

    if (manager.getUsername().equals(usernameLogin) && manager.getPassword().equals(passwordLogin)) {
        no = manager.getId();
        break;
    }

    for (User user : users) {
        if (user.getUsername().equals(usernameLogin) && user.getPassword().equals(passwordLogin)) {
            no = users.get(i).getId();
            break;
        }
    }

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