我想实现用户要是输入的数据大于我数组的长度或者小于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 星