我想实现用户要是输入的数据大于我数组的长度或者小于0能够抛出错误。该怎么改?

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

我这样写的话,第二次输入还是错误就不会管了。我该怎么改呢,求指导!谢谢!

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

        同学你好,这里代码的实现是多种多样的,如果想实现当输入错误时,重新输入内容,可以将接收数据的这段代码放在一个while循环中,当输入数据异常,使用continue跳出本次循环,重新接收数据!例如:

http://img1.sycdn.imooc.com//climg/5d3c120b000155c907510343.jpg

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

好帮手慕小班 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);

运行效果如下:

http://img1.sycdn.imooc.com//climg/5d3c02f80001109904320491.jpg

直接给出提示信息,重新输入!

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

  • 提问者 Adam静之 #1
    也就是不符合的时候,只能跳出case,然后再让用户自己选择进这个case来重新输入吗?
    2019-07-27 16:03:46
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师