/*
*最后的练习题,写完以后有两个问题想问一下,请各位大侠指点迷津:
*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("程序执行结束!");
  }
}
举报
 
                             
                            