我想实现用户要是输入的数据大于我数组的长度或者小于0能够抛出错误。该怎么改?
case 4: System.out.println("请输出要修改的成绩位置(从0开始):"); int index =0; try { index = sc1.nextInt(); if(index>(f.length-1)) { System.out.println("输入的数据大于数组的长度,请重新输入"); sc1.next(); }else if(index < 0){ System.out.println("不能输入比0小的数据,请重新输入"); sc1.next(); }else { break; } }catch(InputMismatchException e) { System.out.println("输入的数据格式有误,不能有非数字!"); sc1.next(); } float newScore = 0; System.out.println("请输出要新的成绩:"); try { newScore= sc1.nextFloat(); }catch(InputMismatchException e) { System.out.println("输入的数量格式有误,不能有非数字!"); sc1.next(); } stu.update(f, index, newScore);
我这样写的话,第二次输入还是错误就不会管了。我该怎么改呢,求指导!谢谢!
0
收起
正在回答
2回答
同学你好,这里代码的实现是多种多样的,如果想实现当输入错误时,重新输入内容,可以将接收数据的这段代码放在一个while循环中,当输入数据异常,使用continue跳出本次循环,重新接收数据!例如:
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
好帮手慕小班
2019-07-27 15:53:50
同学你好,这里可以参考如下代码来实现
case 4: // 修改数据 System.out.println("请输出要修改的成绩位置(从0开始):"); int index = 0; try { index = sc1.nextInt(); if (index > (f.length - 1)||index < 0) { System.out.println("输入的数据比数组的长度不符合,请重新输入"); break; } } catch (InputMismatchException e) { System.out.println("输入的数据格式有误,不能有非数字!请重新输入"); sc1.next(); continue; } float newScore = 0; System.out.println("请输出要新的成绩:"); try { newScore = sc1.nextFloat(); } catch (InputMismatchException e) { System.out.println("输入的数量格式有误,不能有非数字!"); sc1.next(); } stu.update(f, index, newScore);
运行效果如下:
直接给出提示信息,重新输入!
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星