/* *最后的练习题,写完以后有两个问题想问一下,请各位大侠指点迷津: *1、用户输入的字符串如何实现与数组中成员匹配,我自己写的这个代码只能匹配数组中第一个成员(西游记) 2、捕获异常以后,有没有办法让程序继续执行,即:提示catch中内容后再重新开始循环,而不是直接终止程序 */ import java.util.*; public class Book{ public static void main(String[] args){ String book[]={"西游记","红楼梦","水浒传","三国演义"}; Scanner putin =new Scanner(System.in); boolean a=true; /* * 思路一:建议循环,找到图书跳出循环,未找到图书继续循环 * 思路二:通过两个if语句实现两种功能查找图书 */ while(a==true){ System.out.println("输入命令:1,按照书名查找图书;2,按照序号查找图书"); int xuanze=putin.nextInt(); if(xuanze==1||xuanze==2){ /* * 功能一,通过书名查找图书 * 通过用户输入的字符串与数组中每个成员进行equals()方法对比,一旦对比成功跳出循环,对比失败重复循环 * */ if(xuanze==1){ System.out.println("输入图书名称"); String name=putin.next(); for(String x : book){ if(name.equals(x)) { System.out.println(name+"这本书找到了"); a=false; break; }else{ System.out.println("没有这本书"); break;} } } /* * 功能一,通过序号查找图书 * 如果输入的序号在0和数组长度之间则输入该图书名字,否则重复循环 * 通过捕获用户输入信息,检查用户是否输入的为整数,如果输入错误做出提示 * */ if(xuanze==2){ System.out.println("输入图书序号"); try{ int xuhao=putin.nextInt(); if(xuhao>=0&&xuhao<book.length){ System.out.println(book[xuhao]+"这本书找到了~"); break; }else{ System.out.println("没有这本书");} } catch(InputMismatchException e){ System.out.println("出错了!请输入正确的图书序号");} } }else{System.out.println("命令输入错误,请按提示输入正确数字");} } System.out.println("程序执行结束!"); } }
2014-08-18
4 回答
import java.util.*;
public class Book{
public static void main(String[] args){
String book[]={"西游记","红楼梦","水浒传","三国演义"};
Scanner putin =new Scanner(System.in);
boolean a=true;
/*
* 思路一:建议循环,找到图书跳出循环,未找到图书继续循环
* 思路二:通过两个if语句实现两种功能查找图书
*/
while(a==true){
System.out.println("输入命令:1,按照书名查找图书;2,按照序号查找图书");
int xuanze=putin.nextInt();
if(xuanze==1||xuanze==2){
/*
* 功能一,通过书名查找图书
* 通过用户输入的字符串与数组中每个成员进行equals()方法对比,一旦对比成功跳出循环,对比失败重复循环
* */
if(xuanze==1){
System.out.println("输入图书名称");
String name=putin.next();
//list这一段是百度得来的
List<String> tempList = Arrays.asList(book);
if(tempList.contains(name)){
System.out.println( name+"这本书找到了");
a=false;
}else{
System.out.println( "没有找到这本书");
}
}
/*
* 功能一,通过序号查找图书
* 如果输入的序号在0和数组长度之间则输入该图书名字,否则重复循环
* 通过捕获用户输入信息,检查用户是否输入的为整数,如果输入错误做出提示
* */
if(xuanze==2){
System.out.println("输入图书序号");
try{
int xuhao=putin.nextInt();
if(xuhao>=0&&xuhao<book.length){
System.out.println(book[xuhao]+"这本书找到了~");
break;
}else{
System.out.println("没有这本书");}
}
catch(InputMismatchException e){
System.out.println("出错了!请输入正确的图书序号");}
}
}else{System.out.println("命令输入错误,请按提示输入正确数字");}
}
System.out.println("程序执行结束!");
}
}
举报