public static void login(List<user>users) throws Exception {
boolean flag=false;
int remark=0;
Scanner sc=new Scanner(System.in);
System.out.println(" --- 欢迎来到登录页面 ---");
System.out.println("请您输入您的用户名");
String name= sc.next();
// 1.判断用户集合中是否存在该用户
// 遍历集合
for (int i = 0; i < users.size(); i++) {
// 判断用户名是否相同
if (users.get(i).getUsername().equals(name)) {
flag = true;
// remark 作为标记,来标记用户在集合中的索引
remark = i;
}
}
// * 用户名相同,开始密码判断
if (flag){
System.out.println("请您输入您的密码");
String password1= sc.next(); // 第一次输入的密码
// 判断密码是否相同
if (users.get(remark).getPassword().equals(password1)){
// 密码相同
System.out.println("恭喜您登录成功");
code();
judgeType();// 该方法用来判断用户类别,对应各自的操作界面
}
else{
// 密码不相同
System.out.println("您输入的密码有问题,请再次输入");
String password2= sc.next();
// 拿到该用户的密码
if (users.get(remark).getPassword().equals(password2)){
System.out.println("恭喜您登录成功");
code();
judgeType();
}
else{
System.out.println("您输入的密码有问题,请再次输入,或输入exit退出界面");
String password3= sc.next();
// 拿到该用户的密码
if (users.get(remark).getPassword().equals(password3)){
System.out.println("恭喜您登录成功");
code();
judgeType();
}
else if (password3.equals("exit")){
userManager.show();
}
else {
System.out.println("因为您多次输错密码,自动为您退出登陆页面");
userManager.show();
}
}
}
}
// * 二.用户名不相同
else {
System.out.println("请您确认您的用户名是否正确");
System.out.println("若是您还没有注册账号,请您先注册账号");
System.out.println("您可以再次输入用户名,或者输入exit退出登录界面");
String str1= sc.next(); // str1 用户名
// 再次登录账户
if (str1.equals("exit")){
return;
}
else{
for (int j = 0; j < users.size(); j++) {
// 判断用户名是否相同
if ( users.get(j).getUsername().equals(str1)){
// 相同,输入密码判断
flag=true;
remark=j;
}
}
if (flag){
System.out.println("请您输入您的密码");
String password2= sc.next(); // 第二次输入的密码
// 判断密码是否相同
if (users.get(remark).getPassword().equals(password2)){
// 密码相同
System.out.println("恭喜您登录成功");
code();
judgeType();
}
else{
// 密码错误
System.out.println("您输入的密码有问题,请再次输入,或输入exit退出界面");
String str2= sc.next();
// 拿到该用户的密码
if (str2.equals("exit")){
userManager.show();
}
else if (users.get(remark).getPassword().equals(str2)){
System.out.println("恭喜您登录成功");
code();
judgeType();
}
else {
System.out.println("因为您多次输错密码,自动为您退出登陆页面");
userManager.show();
}
}
}
else{
// 用户名再次不相同
System.out.println("因为您多次输错用户名,自动为您退出登陆页面");
userManager.show();;
}
}
}
}