为了账号安全,请及时绑定邮箱和手机立即绑定

关于图书借阅系统的问题

关于图书借阅系统的问题

hy_wang 2017-07-27 14:27:49
测试类package Library; import java.util.Scanner; public class Tushuguan { public static void main(String[] args) { System.out.println("1-按照书名查询信息"+"2-按照序号查询信息"); try{ Scanner inqut=new Scanner(System.in); int num=inqut.nextInt();}          catch(Exception e){      System.out.println("请输入数字1或者2进行查询");      System.out.println("请重新输入");      Scanner in = new Scanner(System.in);      int sum=in.nextInt();          try{    switch(sum){      case 1:      shuming one=new shuming();      String name1=one.Book();      break;     } }      catch(Exception a){      a.printStackTrace();      System.out.println("请输入正确的书名"+"\n请重新输入");      Scanner on = new Scanner(System.in);      String name=on.next();      }                    }}} shuming类package Library; import java.util.Scanner; import java.util.Arrays; public class shuming { public String Book() throws Exception{ String [] book=new String[]{"Thank in Java","Head First In Java","C pro"}; System.out.println(Arrays.toString(book)); String name; try { Scanner inqut=new Scanner(System.in); name = inqut.next(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); throw e; }      return name; } }请问为什么我的测试类正常运行输入1的时候 程序就结束了而输入出现错误的时候重新输入1 她才展示出来shuming类中的调用??
查看完整描述

2 回答

?
Z_Java

TA贡献5条经验 获得超0个赞

补充:你代码写的就有问题,你为什么要把switch-case写到catch里,这不是用户先输入错误么。。。

查看完整回答
反对 回复 2017-07-27
  • hy_wang
    hy_wang
    我的sum在main方法里是局部变量 ,应该main方法中都可以使用啊。请问为什么到了try中就不能使用了
  • Z_Java
    Z_Java
    你的sum不是mian里的局部变量,而是catch块的局部变量
?
Z_Java

TA贡献5条经验 获得超0个赞

正常输入1,程序只会执行到第9行,当然结束了!当你输入错误时,比如输入字母,产生异常,会让你再输入一次,这样才可以让sum有值。因为你的sum不是全局变量,不在同一个try-catch块里

查看完整回答
反对 回复 2017-07-27
  • hy_wang
    hy_wang
    你好,但是我把switch语句改到try里还是不行啊
?
qq_hellohellola_03814043

TA贡献30条经验 获得超21个赞

等于1→break?

查看完整回答
反对 回复 2017-07-27
  • hy_wang
    hy_wang
    与break没有什么大关系,这里的break只是满足case1中结束switch语句。 及时取掉break程序还是没有继续运行
  • weibo_歌笠横_0
    weibo_歌笠横_0
    你这代码为什么执着与trycatch呢,你的这些代码其实并不用异常什么的,有几个判断语句足够了,还有就是你的代码逻辑很乱,无缘无故抓什么异常,为了使代码看起来高大尚一点? 异常是你有必要的时候才用的,你好好看一下api,一般什么时候用异常,不要为了用而用,牛头不对马嘴,徒增笑话。
  • 2 回答
  • 1 关注
  • 1933 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信