gpt4 book ai didi

java - 在嵌套 "for"语句时跳出此 "if"循环

转载 作者:搜寻专家 更新时间:2023-11-01 02:38:38 28 4
gpt4 key购买 nike

我正在尝试使用 break; 语句来退出 for 循环。

final int NUM_USERS = 6;                     // Max Number of Users.
UserInfo[] users = new UserInfo[NUM_USERS]; // Array of Users.
int loginCounter = 0; // Counts bad login attempts.
int i = 0; // Loop index variable.
String userRole = ""; // Holds user's role text.

for (loginCounter = 1; loginCounter <= 3; ++loginCounter) {
// Get User's Credentials.
System.out.println("Enter Username: ");
String username = input.next().toLowerCase();
input.nextLine(); // Allows User to enter password.
System.out.println("Enter Password: ");
String password = input.nextLine();

String hash = sysLogin.convertToMd5(password);
for (i = 0; i < users.length; ++i) {
if (username.equals(users[i].getUsername())) {
if (hash.equals(users[i].getHash())) {
userRole = users[i].getRole();
sysLogin.goodLogin(); // Prints Good Login message.
break;
}
} else {
sysLogin.badLogin(); // Prints Bad Login message.
}
}
}

发生了什么:

代码将读取usernamepassword,验证这是一个正确的登录,然后再次返回询问用户名和密码。

预期会发生什么:

一旦成功登录,它将 userRole 设置为当前用户的角色,显示 goodLogin 消息,然后退出循环。

最佳答案

break 只会跳出迭代用户列表的内部 for 循环,而不是外部循环。

尝试做这样的事情

boolean login = false;
do {

// Get User's Credentials.
System.out.println("Enter Username: ");
String username = input.next().toLowerCase();
input.nextLine(); // Allows User to enter password.
System.out.println("Enter Password: ");
String password = input.nextLine();

// Convert password to MD5 hash.
String hash = sysLogin.convertToMd5(password);
for (i = 0; i < users.length; ++i) {
if (username.equals(users[i].getUsername())) {
if (hash.equals(users[i].getHash())) {

login = true;

userRole = users[i].getRole();
sysLogin.goodLogin(); // Prints Good Login message.
break;
} else {

sysLogin.badLogin(); // Prints Bad Login message.
}
}
}
} while ( login == false && failCondition == false );

您需要将失败计数加回到循环中,但这应该会给您带来更符合预期的结果。

关于java - 在嵌套 "for"语句时跳出此 "if"循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39937875/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com