/**
*
本着无论如何都想把Java啃下来的心情(x
*买了一本入门书、一本算法手册
*看了一天的入门视频+半天入门书
*做了一个test测试
*/
设想需要该test实现的目的是:首先用户在终端通过类1登陆,程序判断登陆信息是否正确,如果正确则会调用类2的main方法进行输入数值并自选排序输出。
用到了一个package和两个class
代码如下:
登陆用的类1(NameI类)
package com.test;
import java.util.Scanner;
public class NameI {
public static void main(String[] args) {
boolean login = false;//声明一个boolean变量,初始化为false未登录状态
int i = 0;//错误次数计数器,初始化为0
Scanner input = new Scanner(System.in);//创建Scanner工具的input对象
do{
System.out.println("请输入用户名:");
String name = input.next();
System.out.println("请输入密码:");
String password = input.next();
if("Haruki".equals(name)&&"123456".equals(password)){//判断用户名和密码是否合法
System.out.println("账户1登陆成功");
login = true;//登陆成功之后login变量改为true状态
System.out.println("现在可以进行数值输入操作");
NumSave.main(args);//调用NumSave类的main方法
}else{
if("Asakawa".equals(name)&&"951".equals(password)){//判断用户是否输入了特殊账户
System.out.println("你正在尝试登陆账户2,是否继续?(y or n)");
String tof = input.next();//声明一个字符串变量"tof",用于保存用户输入的值
if("y".equals(tof)){//若用户选择继续登陆
System.out.println("账户2登陆成功");
System.out.println("现在可以进行数值输入操作");
NumSave.main(args);//调用NumSave类的main方法
}else{
System.out.println("你选择了否,终止登陆程序");
System.exit(0);
}
}else{
i++;
System.out.println("登录信息不合法,您还可以再尝试"+(5-i)+"次");
if(i == 5){
System.out.println("错误次数累计5次,禁止登陆");
System.out.println("终止登陆程序");
}
}
}
}while(i<5 && !login);
}
}
数值操作用的类2(NumSave类)
package com.test;
import java.util.Scanner;//导入Scanner
import java.util.Arrays;//导入Arrays
/**
* 保存10个数值并进行排序后输出
* @author Haruki
*对输入的数值大小进行了限制,不能大于120
*/
public class NumSave {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);//创建input对象
int[] num = new int[10];//创建可以写入10个元素的数组
NumSave f1 = new NumSave();//创建NumSave类的f1对象
for(int i=0;i<=num.length -1;i++){//根据数组长度-1进行输入数值的循环
System.out.println("请输入数值(不超过120):");
int a = input.nextInt();//获取输入的数值
if(a>=120){//判断输入的数据是否正常
System.out.println("输入数值过大");//若不正常的提示语
num[i] = f1.retry();//对数组写入retry方法的返回值
}else{
num[i] = a;//若正常则对数组写入输入的数值
}
}
System.out.println("刚才输入的十个数值为:");
for(int i =0;i<=num.length -1;i++){//遍历数组
System.out.println(num[i]);//输出保存的数组数值
}
System.out.println("是否进行排序并重新输出?(y or n)");
Scanner tem = new Scanner(System.in);//创建tem对象
String i = tem.next();//声明一个字符串变量用来保存输入的字符y或n
if("y".equals(i)){//判断是否输入了y字符
Arrays.sort(num);//排序数组
System.out.println("经过排序后的数组为:");
for(int k=0;k<=num.length -1;k++){
System.out.println(num[k]);//输出排序后的数组
}
System.out.println("test结束,程序终止");
System.exit(0);//结束程序
}else{
System.out.println("你选择了否,终止该test");//若输入了n则直接结束程序
tem.close();//关闭输入
System.exit(0);//结束程序
}
}
public int retry(){//被调用的retry方法
Scanner input2 = new Scanner(System.in);
int try1 = 120;//由于被调用此方法所以默认用户已经输入了大于等于120的数值
do{//do...while循环进行用户二次输入
if(try1>=120){//判断二次输入是否合法
System.out.println("请你再输入一次不超过120的规范数值 ! ");
try1 = input2.nextInt();//给变量try1赋值新数值
}
}while(try1>=120);//若新的try1值小于120则可以跳出循环
return try1;//输出返回值
}
}
跑的时候前后也出现了很多问题,debug花了点时间,总之最后终于是能正常运行了(笑
希望我能坚持下来吧。