阻止它在Java中循环

阻止它在Java中循环,java,Java,我怎样才能阻止它循环?关于无效用户名和密码的错误消息框将根据我文本文件中的用户数弹出,我不知道如何解决它 for (int i = 0; i < userList.size(); i++) { if (userList.get(i).getUserID().equals(txtUserID.getText()) && userList.get(i).getPassword().equals(ptxtPassword.getText())) {

我怎样才能阻止它循环?关于无效用户名和密码的错误消息框将根据我文本文件中的用户数弹出,我不知道如何解决它

for (int i = 0; i < userList.size(); i++) {
            if (userList.get(i).getUserID().equals(txtUserID.getText()) && userList.get(i).getPassword().equals(ptxtPassword.getText())) {
                if (userList.get(i).getUserType().equals("Administrator")) {
                    System.out.println("Welcome Admin " + userList.get(i).getName() + " (" + userList.get(i).getUserID() + ")");
                    mainMenuForm.lblUser.setText("Welcome Admin " + userList.get(i).getName() + " (" + userList.get(i).getUserID() + ")");

                    mainMenuForm.setVisible(true);

                    this.setVisible(false);

                } else if (userList.get(i).getUserType().equals("Sales Manager")) {
                    System.out.println("Welcome SM" + userList.get(i).getName());
                    mainMenuForm.lblUser.setText("Welcome SM " + userList.get(i).getName() + " (" + userList.get(i).getUserID() + ")");

                    mainMenuForm.setVisible(true);
                    mainMenuForm.lblRegistration.hide();

                    this.setVisible(false);

                } else if (userList.get(i).getUserType().equals("Purchase Manager")) {
                    System.out.println("Welcome PM" + userList.get(i).getName());
                    mainMenuForm.lblUser.setText("Welcome PM " + userList.get(i).getName() + " (" + userList.get(i).getUserID() + ")");

                    mainMenuForm.setVisible(true);
                    mainMenuForm.lblDailySales.hide();

                    this.setVisible(false);
                }
            } else {
                JOptionPane.showMessageDialog(null, "Invalid User ID or Password!", "Login Error", JOptionPane.OK_OPTION);
            }
        }
for(int i=0;i
要在java中中断循环,使用的命令是
break

您需要的是类似于以下内容的伪代码:

credentialsCorrect = false;
loop(usersList) {
  if (correct credentials) {
    credentialsCorrect = true;
    break;
  }
}
if (credentialsCorrect) {
  showCorrectCredentialsResponse();
} else {
  showWrongCredentialsResponse();
}
或者更好的是,使用用户id作为键的映射,这样您就不需要手动循环:

userData = usersMap.get(userId);
credentialsCorrect = userData != null && matches(userData, password)
if (credentialsCorrect) {
  showCorrectCredentialsResponse();
} else {
  showWrongCredentialsResponse();
}

如果我正确理解了您的问题,您可以使用
break
关键字来打破循环。如果要整理代码,可以用
开关
语句替换
If
语句,以提高可读性。

摆脱

for(inti=0;i


要阻止它为每个用户循环

可以使用
break
语句,但我建议不要这样做。查看更多信息

您在
for
循环中有消息显示。您可以将其移出,并使用
布尔
变量控制是否找到用户/密码。如果没有此类用户/密码组合,则消息应仅可见一次:

boolean found = false;
for (int i = 0; i < userList.size() && !found; i++) {
    if (userList.get(i).getUserID().equals(txtUserID.getText()) && userList.get(i).getPassword().equals(ptxtPassword.getText())) {
        found = true;
        if (userList.get(i).getUserType().equals("Administrator")) {
            System.out.println("Welcome Admin " + userList.get(i).getName() + " (" + userList.get(i).getUserID() + ")");
            mainMenuForm.lblUser.setText("Welcome Admin " + userList.get(i).getName() + " (" + userList.get(i).getUserID() + ")");

            mainMenuForm.setVisible(true);

            this.setVisible(false);

        } else if (userList.get(i).getUserType().equals("Sales Manager")) {
            System.out.println("Welcome SM" + userList.get(i).getName());
            mainMenuForm.lblUser.setText("Welcome SM " + userList.get(i).getName() + " (" + userList.get(i).getUserID() + ")");

            mainMenuForm.setVisible(true);
            mainMenuForm.lblRegistration.hide();

            this.setVisible(false);

        } else if (userList.get(i).getUserType().equals("Purchase Manager")) {
            System.out.println("Welcome PM" + userList.get(i).getName());
            mainMenuForm.lblUser.setText("Welcome PM " + userList.get(i).getName() + " (" + userList.get(i).getUserID() + ")");

            mainMenuForm.setVisible(true);
            mainMenuForm.lblDailySales.hide();

            this.setVisible(false);
        }
    }
}

// if we didn't find the user/password combination, display the error message
if(!found) {
    JOptionPane.showMessageDialog(null, "Invalid User ID or Password!", "Login Error", JOptionPane.OK_OPTION);
}
boolean-found=false;
对于(int i=0;i