慕粉3631469
2017-09-19 13:35
在main方法的try块中当rt.order(i)抛出异常后,整个try块就停止执行了,直接开始catch异常,所以在try中用循环体重新执行第一行提示语应该是行不通的,那么应该怎样做到抛出异常后能够循环执行程序?
package com.imooc_third; import java.util.Scanner; public class java19 { public static void main(String[] args) { int a=1; do { int input1=new java19().yi(); switch(input1) { case 1: String input2=new java19().name(); switch(input2) { case "高数": System.out.println("book:高数");break; default : System.out.println("图书不存在!");continue; //这里有个很关键的知识点,continue是无法在switch中起作用的,所以 //这里的continue是作用于do while的 } break; case 2: int input3=new java19().xuhao(); switch(input3) { case 1: System.out.println("book:数据结构");break; default : System.out.println("图书不存在!");continue; } break; default:System.out.println("命令输入错误!请根据提示输入数字命令!");break; } break; }while(a==1); } public int yi() { try { System.out.println("输入命令:1-按照名称查找图书;2-按照序号查找图书"); Scanner input = new Scanner(System.in); int input1=input.nextInt(); return input1; }catch(Exception e) { return 0; } } public String name() { try { System.out.println("请输入图书名称:"); Scanner input = new Scanner(System.in); String input2=input.next(); return input2; }catch(Exception e){ return "tushu"; } } public int xuhao() { try { System.out.println("请输入图书序号:"); Scanner input = new Scanner(System.in); int input3=input.nextInt(); return input3; }catch(Exception e){ return 0; } } }
这是我的程序
抱着学习的心态来看看,在try块里没有返回值吗,能不能设置成返回值为1,这样在while里写成while(rentbook.start!=1)行吗
楼主能不能把代码贴下学习学习
按照你的思路改了,还有一个小问题
我认为可以把try-catch块提出来放在一个方法里,然后当异常发生时再执行这个方法就可以了
Java入门第三季
409789 学习 · 4340 问题
相似问题