请问题目中“修改指定位置处成绩的方法“给的示例方法类型,参数如果去掉两个是不是会更好一些?

请问题目中“修改指定位置处成绩的方法“给的示例方法类型,参数如果去掉两个是不是会更好一些?

http://img1.sycdn.imooc.com//climg/612b59b709e1d8f811530620.jpg

老师好!


题目中,修改指定位置处成绩的方法类型,给的是有参带返(3个参数)的:
public void update(float[] f, int index, float newScore) {  }


但是这样会导致主方法中case 4代码量非常多,因为这样主方法中既要接收index和newScore两个键盘数值,又要对这两个数值做各种判断(比如index不能为非数字,且index>=0&&index<a.length)(newScore不能为非数字,且newScore>0)。代码如下截图:


所以我在想说,假如题目中关于给出的方法类型,把index和newScore这两个参数去掉的话:

public void update(float[] f) {  }

在update方法中再去接收index和newScore数值,

那么主方法的case 4部分将会变得简洁很多对吧?

我的理解对吗?


http://img1.sycdn.imooc.com//climg/612b5b340954aca406510766.jpg

http://img1.sycdn.imooc.com//climg/612b5b950966b31306540424.jpg

相关代码:

​case 4:	
int index=0;
float newScore=0;
if(a!=null) {
System.out.println("修改前:"+'\n'+"成绩为:");
for(float n:a){
System.out.print(n+" ");
}
System.out.println();
//接收修改位置
System.out.println("请输入要修改数据的位置(从0开始):");
while(true) {
try {
index=sc.nextInt();
}catch(InputMismatchException e) {
System.out.println("不能输入非数字!请重新输入:");
sc.next();
continue;
}
if(index>=0&&index<a.length) {
break;
}else {
System.out.println("输入的位置超出范围,请重新输入:");
continue;
}
}
//接收新数据
System.out.println("请输入新数据");
while(true) {
try {
newScore=sc.nextFloat();
}catch(InputMismatchException e) {
System.out.println("不能输入非数字!请重新输入:");
sc.next();
continue;
}
if(newScore>=0) {
break;
}else {
System.out.println("输入的分数不能为负数,请重新输入:");
continue;
}
}
//调用update方法
sm.update(a, index, newScore);
System.out.println("修改后:"+'\n'+"成绩为:");
for(float n:a){
System.out.print(n+" ");
}
System.out.println();
}else {
System.out.println("还未初始化数学成绩,请重新选择操作!");
}
break;


正在回答

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

1回答

同学你好,实现思路有很多种,而同学实现思路是正确的,可以去除两个参数在update()方法中进行键盘输入获取修改位置与修改的数据,从而减少在主方法中的代码。

    ​不过批复作业的老师会根据作业的要求进行批复,所以建议同学按照作业提供的方法进行创建。同学想要优化的代码或按照自己的思路创建方法也是可以的,需要同学在作业中添加一个文档,描述清楚同学修改的地方,便于批复作业的老师进行查看。

祝学习愉快!

  • Kumal 提问者 #1

    好的,谢谢老师,提交作业时我是有按照题目要求的那样三个参数去写case 4。

    谢谢老师么么哒!

    2021-08-29 20:13:25
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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