package frist;import java.util.Scanner;public class Test { static String[] book={"高数","数据结构","java","html","SQL","安卓"};//把图书信息放进数组 static boolean x=true;//定义一个布尔类型用来执行循环 Scanner input=new Scanner(System.in); public static void main(String[] args) throws OneTow {//住方法 // TODO 自动生成的方法存根 Test test=new Test();//创建对象用来调用test1方法 while(x){ //循环体 try { test.test1(); } catch (OneTow e) { // TODO 自动生成的 catch 块 System.out.println(e.getMessage());//test1命令输入错误时抛出异常 } } } //方法一 public void test1() throws OneTow { Test test1=new Test();//新建一个对象 System.out.println("输入命令:1-按照名称查找图书;2-按照序号查找图书。"); String c=input.nextLine(); //从键盘输入字符寸 if(c.equals("1")){ //如果相等,执行test2方法 try { test1.test2(); } catch (CatchName e) { // TODO 自动生成的 catch 块 System.out.println(e.getMessage());//test2方法输入命令错误,抛出异常 test1.test1(); //并返回执行test1方法 } } else if(c.equals("2")){ //如果相等,执行test3方法 try { test1.test3(); } catch (CatchName e) { // TODO 自动生成的 catch 块 System.out.println(e.getMessage());//test3方法输入命令错误,抛出异常 test1.test1(); //并返回执行test1方法 } }else { throw new OneTow("命令输入错误!请根据提示输入命令。");//test1命令错误抛出的异常信息 } } //方法二:判断输入图书名称 public void test2() throws CatchName { int a=0;//用来判断是否抛出异常信息 System.out.println("输入图书名称"); String name=input.nextLine(); //输入图书名称 for(int i=0;i<book.length;i++)//遍历图书下标 { if(name.equals(book[i]))//判断是否相等 { a=1; name=book[i]; //把book[i]的值赋值给name break; //跳出循环 } } if(a==1){ //判断如果a是1,输出图书名称,否则抛出异常信息 System.out.println("book:"+name); x=false; //把false赋值给x,用以在while循环体中跳出循环 } else { throw new CatchName("图书不存在");//抛出异常信息 } } //方法三 public void test3() throws CatchName { System.out.println("输入图书序号"); String no=input.nextLine();//输入图书序号 int b=0;//用来判断是否抛出异常信息 int d=0;//用来存储下标+1的信息 for(int j=1;j<=book.length;j++)//遍历图书下标 { String s=String.valueOf(j);//把 int类型的j转换为String,并且赋值给s if(no.equals(s))//判断字符串是否相等 { b=1; d=j; //把j的值赋值给d; break; //跳出循环 } } if(b==1) //判断如果b是1,输出图书名称,否则抛出异常信息 { System.out.println("book:"+book[d-1]); x=false; //把false赋值给x,用以在while循环体中跳出循环 } else {throw new CatchName("图书不存在!");} //抛出异常信息 } }
添加回答
举报
0/150
提交
取消