我正在开发一个Java项目,构建一个简单的系统,它有一些方法,其中一个是“Change PassWord”,我把用户的信息(用户名和密码)放在一个叫做的文本文件中(“ Users.txt“)。 现在这是方法的描述:
boolean ChangePassWord():要求用户输入旧密码 验证,用户最多有三次尝试输入正确的旧 密码;如果不是密码将不会更改和消息框 将为用户显示。如果用户输入了正确的旧密码 他通过身份验证可以更改密码并要求输入新密码 密码和确认新的。一旦确认正确旧 密码将更改为新密码,并将显示一个消息框 显示如果错误确认旧密码将不会被更改和a 消息框将会显示。
我写了这段代码:
boolean changePassword(){
String pass=JOptionPane.showInputDialog(null, "Enter old password: ", "Input", JOptionPane.QUESTION_MESSAGE);
if(pass.equals(Password)) {
String newpass=JOptionPane.showInputDialog(null,
"Enter new password: ", "Input", JOptionPane.QUESTION_MESSAGE);
String connewpass=JOptionPane.showInputDialog(null,
"Enter confirming new password: ", "Input",
JOptionPane.QUESTION_MESSAGE);
if(newpass.equals(connewpass)){
Password= newpass;
JOptionPane.showMessageDialog(null, "password changed ", "message",
JOptionPane.INFORMATION_MESSAGE);
return true;
}
else
JOptionPane.showMessageDialog(null, "Wrong Conferm ", "message",
JOptionPane.INFORMATION_MESSAGE);
}
else
JOptionPane.showMessageDialog(null, "Wrong password ", "message",
JOptionPane.INFORMATION_MESSAGE);
return false;
}
但我认为这是错误的,我需要使用循环。 我希望你帮助我!
答案 0 :(得分:0)
while
循环适合您的情况。我将简要解释这个while
循环如何运行3次。
所以,首先n=3
。条件n-- > 0
意味着两件事。检查n是否大于零和将n的值减去1.这两件事按照确切的顺序发生。
因此条件检查n确实大于零并进入循环。同时n也减少1并变为3-1 = 2。
这种情况持续了3次。在第3次之后,n变为0。并且条件0> 0。 0为假,因此while循环中断。
boolean changePassword(){
String pass = ""; //get old password from user
int n = 3;
while (n-- > 0) {
if(pass.equals(Password)) {
String newPass = ""; // get new password from user
String conNewPass = ""; // confirm new password from user
if (newPass.equals(conNewPass)) {
Password = newPass;
// password changed
return true;
} else {
// wrong confirmation.. password not changed
return false;
}
}
else {
// tell user to enter the correct old password
pass = ""; // ask user for old password again
}
}
// show error message that user entered the old password 3 times incorrectly
// and return false
return false;
}