3-4的作业,输入的存储数量是变化的,那还怎么用数组呢?

3-4的作业,输入的存储数量是变化的,那还怎么用数组呢?

老师,这里存储数量是变化的,但数组的长度是死的,那怎么处理呢?

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

正在回答 回答被采纳积分+1

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

2回答
好帮手慕小班 2019-08-21 10:13:15

同学你好,1、如果要实现输入错误,重新输入的效果,可以在接收这个len的代码块外部添加一个while循环,输入正确跳出循环,输入错误,继续进行下一次循环,例如:

int len = 0;
float[] f = null;
while(true){
	try {
		System.out.println("请输入要存储的数学成绩的数量:");
		len = sc.nextInt();
		break;
	} catch (java.util.InputMismatchException e) {
		System.out.println("输入的数据格式有误,不能有非数字!");
		sc.next();//接收错误数据
		continue;//跳出本次循环,重新接收数据
        }
}
		
f = new float[len];

2、根据题目要求:定义一个初始化数学成绩的方法,数组的长度和元素均由键盘输入。public float[] initScore() {  }

所以这段代码写在初始化成绩的方法里,然后在主方法中调用这个方法,例如:

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

在initScore方法中完成对数组的声明和初始化,然后再测试方法中调用它

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

如上所示在测试方法中的switch--> case  1中调用了这个方法!

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

好帮手慕小班 2019-08-20 19:05:34

同学你好,这里根据题目要求: 数组长度可以通过键盘输入,通过键盘输入的长度来实例化哦,具体思路是:可以添加一个使用键盘输入的int类型的变量。并且new新的数组的时候,这个新的变量作为数组的长度,例如:

   int len = 0;//定义数组长度的变量
   float[] f = null;		
     try {		
          System.out.println("请输入要存储的数学成绩的数量:");	
 	  len = sc.nextInt();		
 	} catch (java.util.InputMismatchException e) {
 		System.out.println("输入的数据格式有误,不能有非数字!");
      }	
 f = new float[len];//根据接收的数据来初始化数组

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

  • 提问者 天才少年25 #1
    但是这里没有循环,也没有switch,那如果输入的存储数量有误,它这里会输出提示。但是怎么样才能进行再一次的输入呢?这段代码应该是写在一个方法里。没有写在主方法的循环里。
    2019-08-20 20:21:51
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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