Java中的ChangePassword方法

时间:2016-11-25 18:15:19

标签: java change-password

我正在开发一个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;
}

但我认为这是错误的,我需要使用循环。 我希望你帮助我!

1 个答案:

答案 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;
}