public class Demo {
public static void main(String[] args) {
//1.定义一个集合,存储所有的用户的登陆名和密码;
ArrayList<User> userList = new ArrayList<>();
//2.需要从控制台接收数据
Scanner sc = new Scanner(System.in);
//3.流程:
loop:
while(true){
//1).控制台显示菜单:
System.out.print("请选择:1.注册 2.登录 3.退出:");
int op = sc.nextInt();
//可以用switch可以用if判断
if(op == 1){//要注册;
//A.引导用户输入注册名和密码
System.out.print("请输入登陆名:");
String uName = sc.next();
System.out.print("请输入登录密码:");
String uPwd = sc.next();
//B.进行一些验证:字段是否为空,长度是否符合要求......
if(uName == null || uName.trim().length() == 0){
System.out.print("请填写您的注册登陆名");
continue;
}
if(uPwd == null || uPwd.trim().length() == 0){
System.out.print("请填写您的密码!");
continue;
}
//C.要验证:登陆名是否有重复;
for(User user : userList){
//依次判断登录名是否已经存在
if(user.getUserName().equals(uName)){
//用户名已被使用,禁止注册;
continue loop;
}
}
//如果代码到这里。登陆名验证通过,可以注册
//D:封装一个User对象,存到集合中;
User user = new User(uName,uPwd);
userList.add(user);
//E:提示用户注册成功,继续循环
System.out.println("注册成功!");
continue;
}else if(op == 2){//要登录
// A.引导用户输入登录名和登录密码;
System.out.print("请输入登录名:");
String uName = sc.next();
System.out.print("请输入登录密码:");
String uPwd = sc.next();
// B.程序接收到登陆名和密码后,可以进行一些基本验证:字段是否为空,长度是否符合要求......
if(uName == null || uName.trim().length() == 0){
System.out.print("请填写您的登陆名");
continue;
}
if(uPwd == null || uPwd.trim().length() == 0){
System.out.print("请填写您的密码!");
continue;
}
/* C.到集合中取找:是否有相同的用户和密码;
存在:登录成功;
不存在:提示登陆名或密码错误,重新输入;可以加入登录次数,如果三次登录失败,系统退出;
*/
boolean flag = false;//标记用户名和密码是否正确
for(User user : userList){
if(user.getUserName().equals(uName) &&
user.getUserPwd().equals(uPwd)){
System.out.println("登录成功!");
flag = true;
//做其它事情。
System.exit(0);
}
}
if(!flag){
System.out.println("登录名或密码错误,请重新输入!");
continue;
}
}else if(op == 3){//要退出
System.out.println("谢谢使用,拜拜!");
// break;//结束循环、因为循环后面没有其它语句,也就意味着结束程序;
System.exit(0);//终止虚拟机
}
}
}
}
|
|