记录我的Java学习经历(7)
来源:互联网 发布:php可以用来做什么 编辑:程序博客网 时间:2024/05/22 02:09
介绍
学习Java基础时做的小练习分享,请大家批评指正!
数组的综合小练习
接下来这道题在基础中综合性比较高,需要进行的判断比较多,主要是用户名是否重复的判断比较繁琐,规则:
现在名额是3个,判定:如果名额满了,则提示禁止注册。用户名禁止重复。主界面有注册登录和退出功能,用户注册时需要登记生日和爱好,还有呢登录成功则提示:登录成功并打印该用户所有信息。
PS:我只是初学哈,代码不够精简,欢迎大家批评指正交流~
代码:
public class MainApp { public static void main(String[] args) { @SuppressWarnings("resource") Scanner sc = new Scanner(System.in); String[][] str = new String[3][4];//二维数组,二维为三个用户,一维用于储存用户的所有信息 for (int i = 0; i < str.length; i++) { str[i][0] = "null";//先把所有二维数组的第一个元素定义为null,用于判断是否名额已满 } while(true) { System.out.println("请选择功能:"); System.out.println("1.注册"); System.out.println("2.登录"); System.out.println("3.退出"); int choose = sc.nextInt(); switch (choose) { case 1: registe(str); break; case 2: login(str); break; case 3: System.exit(0); default: break; } } } //注册功能 public static void registe(String[][] str){ @SuppressWarnings("resource") Scanner sc = new Scanner(System.in); //用户名注册: boolean f = true; boolean b = true; String account = ""; int count = 0;//记录是第几个用户名 label:while(f){ if (str[2][0].equals("null")) {//判断注册名额是否已满 System.out.println("请输入注册用户名:"); account = sc.nextLine(); for (int i = 0; i < str.length; i++) {//判断用户名是否已存在 if (str[i][0].equals(account)){ System.out.println("用户名已存在!请重新输入:"); continue label; } } for (int i = 0; i < str.length; i++) {//注册用户名 if (str[i][0].equals("null")) {//判断此名额是否被占用 str[i][0] = account;//注册成功! count = i;//记录是第几个用户名,用于对应密码设置 f = false;//结束掉整个while break; } else { continue;//寻找下个空名额 } } } else {//名额已满 System.out.println("禁止注册!"); b = false;//不执行下面的设置密码 break; } } if(b){//如果名额没满则执行 //设置密码: System.out.println("请设置密码:"); String password = sc.nextLine(); str[count][1] = password; //设置生日: System.out.println("请填写生日:"); String birthdate = sc.nextLine(); str[count][2] = birthdate; //填写爱好: System.out.println("请填写爱好:"); String hobby = sc.nextLine(); str[count][3] = hobby; } } //登录功能 public static void login(String[][] str){ @SuppressWarnings("resource") Scanner sc = new Scanner(System.in); System.out.println("请输入登录账号:"); String account = sc.nextLine(); System.out.println("请输入登录密码:"); String password = sc.nextLine(); int count = 0;//记录逐一比对 for (int i = 0; i < str.length; i++) { if (str[i][0].equals(account) && str[i][1].equals(password)){ System.out.println("登录成功!"); System.out.println("账户名:"+str[i][0]); System.out.println("密码:"+str[i][1]); System.out.println("生日:"+str[i][2]); System.out.println("爱好:"+str[i][3]); break; } count++; } if(count == 3){//如果全都匹配不上,则计数器为3了,为3,则没有相应的用户名和密码,则错误!这里哈,应该有更高效的方法,但是可能我还没学到,想不出来 System.out.println("账户名或密码错误!"); } }}
阅读全文
0 0
- 记录我的Java学习经历(7)
- 记录我的Java学习经历(1)
- 记录我的Java学习经历(2)
- 记录我的Java学习经历(3)
- 记录我的Java学习经历(4)
- 记录我的Java学习经历(5)
- 记录我的Java学习经历(6)
- 记录我的Java学习经历(8)
- 记录我的Java学习经历(9)
- 记录我的Java学习经历(10)
- 我的java学习经历
- 我的java学习经历
- 我的java学习经历
- 我学习java的经历
- 记录我的求职经历
- 从今天开始记录我的学习经历
- 读书笔记_用书来记录我的学习经历
- 真实记录我入门学习Linux系统的经历
- 个人总结4
- 趣图 | 我不让女朋友碰我游戏机的原因
- 【必看】Python超过R,成为数据科学和机器学习的首选语言!
- 预防 | 别人脱单我脱发,怕不是要秃吧!
- mysql主从复制
- 记录我的Java学习经历(7)
- Linux下Makefile的简单应用
- 不知道该起个什么标题(0)
- K.N King现代方法 p18 celsius.c(华氏度转摄氏度)
- 常见字符编码的区别和关系
- 基础补习—概率—台大叶柄成(第二周)
- 数据结构-链表 (python)
- 【神经网络与深度学习】迁移学习:经典算法解析
- 【STM32】stm32安装与搭建环境