package kechengpractice;
import java.util.ArrayList;
import java.util.Scanner;
public class dengluarraylist2 {
public static void main(String[] args) {
//先构建一个集合,这个集合可以通过接收键盘输入,此处为了测试,直接给出
//学生类作为对象,类成员变量是学号和密码
ArrayList<Student> array = new ArrayList<>();
Student s1 = new Student("111", "222");
Student s2 = new Student("124", "124");
Student s3 = new Student("125", "125");
array.add(s1);
array.add(s2);
array.add(s3);
// 定义3次登录机会
for (int i = 2; i >= 0; i--) {
//获取用户输入
Scanner sc = new Scanner(System.in);
System.out.println("请输入ID");
String id = sc.next();
System.out.println("请输入密码");
String passw = sc.next();
//调用判断登录名是否在集合中的方法,在的话返回true,不在返回false
if (judgeId(id, array)) {
//调用判断密码是否在集合中的方法,在的话返回true,不在返回false
if (judgePassWrd(passw, array)) {
System.out.println("登录成功");
return;
} else {
if (i == 0) {
System.out.println("傻屌");
break;
} else {
System.out.println("密码错误,你还有" + i + "次机会");
}
}
} else {
if (i == 0) {
System.out.println("傻屌");
break;
} else {
System.out.println("ID错误,你还有" + i + "次机会");
}
}
}
}
//判断登录名是否在集合中的方法,在的话返回true,不在返回false
public static boolean judgeId(String s, ArrayList<Student> array) {
boolean flag = false;
for (int i = 0; i < array.size(); i++) {
if (array.get(i).getIdnum().equals(s)) {
return true;
}
}
return flag;
}
//调用判断密码是否在集合中的方法,在的话返回true,不在返回false
public static boolean judgePassWrd(String s, ArrayList<Student> array) {
boolean flag = false;
for (int i = 0; i < array.size(); i++) {
if (array.get(i).getPassword().equals(s)) {
return true;
}
}
return flag;
}
}
这里主要是用集合作为示例,通过方法进行判断元素是否在集合中!主要是判断思想十分重要,如果直接通过双 if进行判断,代码会比较繁琐,而且会出一个常见的bug,大家可以尝试一下!