怎样在test方法中加入try/catch语句呢?

来源:4-1 菜单功能

木木汇成林

2019-10-16 15:16:37

public void test() {
		TestDemo td=new TestDemo();
		Scanner s=new Scanner(System.in);
		int input=0,input1=0,input2=0;
		while(true) {
			td.mainMenu();
			System.out.println("请输入对应数字进行操作:");
			try {
				input=s.nextInt();
				if(input==0) {
					break;
				}
				switch(input) {
				case 1:
					//对播放列表进行管理
					td.playListMenu();
					System.out.println("请输入对应数字对播放列表进行管理:");
					while(true) {
						try {
							input1=s.nextInt();
							if(input1==9) {
								break;
							}
							switch(input1) {
							case 1:System.out.println("     1--将歌曲添加到主播放列表");break;
							case 2:System.out.println("     2--将歌曲添加到普通播放列表");break;
							case 3:System.out.println("     3--通过歌曲id查询播放列表中的歌曲");break;
							case 4:System.out.println("     4--通过歌曲名称查询播放列表中的歌曲");break;
							case 5:System.out.println("     5--修改播放列表中的歌曲");break;
							case 6:System.out.println("     6--删除播放列表中的歌曲");break;
							case 7:System.out.println("     7--显示播放列表中的所有歌曲");break;
							default:
								System.out.println("请输入对应数字!");break;
							}
						}catch(InputMismatchException e) {
							System.out.println("不能输入非数字,请输入整数!");
							e.printStackTrace();
						}
					}
					break;
				case 2:
					//对播放器进行管理
					td.playerMenu();
					System.out.println("请输入对应数字对播放器进行管理:");
					while(true) {
						try {
							input2=s.nextInt();
							if(input2==9) {
								break;
							}
							switch(input2) {
							case 1:System.out.println("     1--向播放器添加播放列表");break;
							case 2:System.out.println("     2--从播放器删除播放列表");break;
							case 3:System.out.println("     3--通过名字查询播放列表信息");break;
							case 4:System.out.println("     4--显示所有播放列表信息");break;
							default:
								System.out.println("请输入对应数字!");break;
							}
						}catch(InputMismatchException e) {
							System.out.println("不能输入非数字,请输入整数!");
							e.printStackTrace();
						}
					}
					break;
				default:
					System.out.println("请输入对应数字!");break;
				}
			}catch(InputMismatchException e) {
				System.out.println("不能输入非数字,请输入整数!");
				e.printStackTrace();
			}
			
		}
	}

程序运行时,进入了死循环,请问我应该怎么修改呢?

写回答

1回答

好帮手慕酷酷

2019-10-16

同学你好,可以做如下修改:

在catch语句块中不需要打印报错信息,也就是不需要编写e.printStackTrace();这句代码,然后在catch中加上sc.next()方法表示从键盘上输入数据,continue跳过此次循环,进行下次循环。这样就可以避免出现死循环啦~

具体修改如下:

http://img.mukewang.com/climg/5da6d4f609bbea3507950330.jpghttp://img.mukewang.com/climg/5da6d5040950510a07660398.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

0

0 学习 · 11489 问题

查看课程