我正在为学校项目的登录系统编写部分验证。 我正在尝试遍历包含成员的ArrayList。它只适用于ArrayList中的一个对象,但只要有多个to for循环就会继续运行。
public void confirmation(TextField username, PasswordField password) throws NameException {
data.loadDatabase();
for (int i = 0; i < data.LoginMembers.size(); i++) {
if (username.getText().equals(data.LoginMembers.get(i).getUsername())) {
this.a = true;
System.out.println("Username right");
if (password.getText().equals(data.LoginMembers.get(i).getPassword())) {
this.b = true;
System.out.println("Password right");
this.user = data.LoginMembers.get(i).getClass().getSimpleName().toString();
} else {
System.out.println("Password wrong")
this.a = false;
throw new NameException();
}
} else {
System.out.println("Username wrong");
this.a = false;
throw new NameException();
}
}
}
答案 0 :(得分:0)
您可以使用break;
停止任何循环
答案 1 :(得分:0)
在密码正确的代码块中(或者您需要的任何其他地方),您可以添加以下行:
break;
答案 2 :(得分:0)
如果我理解正确,只要您验证用户密码,您想要从循环中退出,那么只需添加一个这样的中断:
public void confirmation(TextField username, PasswordField password) throws NameException
{
data.loadDatabase();
for(int i = 0; i < data.LoginMembers.size(); i++)
{
if(username.getText().equals(data.LoginMembers.get(i).getUsername()))
{
this.a = true;
System.out.println("Username right");
if(password.getText().equals(data.LoginMembers.get(i).getPassword()))
{
this.b = true;
System.out.println("Password right");
this.user = data.LoginMembers.get(i).getClass().getSimpleName().toString();
break;
}
else
{
System.out.println("Password wrong");
this.a = false;
throw new NameException();
}
}
else
{
System.out.println("Username wrong");
this.a = false;
throw new NameException();
}
}
}
答案 3 :(得分:0)
如果我理解了该方法的目的,那么我建议进行以下更改:
这里是样本修改:
public void confirmation(TextField username, PasswordField password) throws NameException {
data.loadDatabase();
for (int i = 0; i < data.LoginMembers.size(); i++) {
if (username.getText().equals(data.LoginMembers.get(i).getUsername())) {
this.a = true;
System.out.println("Username right");
if (password.getText().equals(data.LoginMembers.get(i).getPassword())) {
this.b = true;
System.out.println("Password right");
this.user = data.LoginMembers.get(i).getClass().getSimpleName().toString();
return;
}
}
}
System.out.println("Username or password wrong");
this.a = false;
throw new NameException();
}
答案 4 :(得分:0)
您可以使用break声明。此外,您可以按标签中断循环。
#controls-wrapper {
width: 100%;
height: 35px;
position: fixed;
bottom: 0;
left: 0;
z-index: 2
}
#controls {
width: 100%;
height: 35px;
position: fixed;
bottom: 0;
left: 0;
background-color: rgba(0,0,0,0.75);
border-top: 2px solid #FFF;
z-index: 2
}
如果condition为true,则两个循环都将终止。