第二部显示问题

第二部显示问题

case 1:

   int[] two=array.insertData();   //是否能将第一部的插入操作结果赋值给two数组?

   break;

   case 2:

   display.showData(two);   //在two这里显示错误,显示未被初始化,但是case1中应该赋值过了啊

   break;


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

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

3回答
好帮手慕阿满 2018-11-21 16:56:31

同学你好,insertData()方法中并没有报错,但是根据题目要求,要求输入的数据不能为0,如果为0要给出错误提示,并要求重新输入数据。因此建议定义一个整型变量n,将从键盘接收的数据赋值给n,然后加一个判断,如果n为0则给出错误提示,并将i的值减1,为下次重新输入数据做准备,并调用continue语句结束当前循环继续下一次循环;在if语句外,也就是n不为0则array[i]=n。

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

提问者 Sakura_Z 2018-11-21 16:36:57

public int[] insertData() {

int[] array=new int[10];

Scanner sc=new Scanner(System.in);

for(int i=0;i<array.length-1;i++) {

System.out.println("请输入第"+(i+1)+"个数据!");

array[i]=sc.nextInt();

}

return array;

}

好像是case1中返回array的问题,有点不明白

好帮手慕阿满 2018-11-21 16:36:22

同学你好,应该将two数组定义在switch外,case 1 后只是将插入数据后的数组赋值给two,two数组在switch外初始化,在case 2 后就不会报错了。

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

  • 提问者 Sakura_Z #1
    public int[] insertData() { int[] array=new int[10]; Scanner sc=new Scanner(System.in); for(int i=0;i<array.length-1;i++) { System.out.println("请输入第"+(i+1)+"个数据!"); array[i]=sc.nextInt(); } return array; } 好像是case1中返回array的问题,不知道哪错了
    2018-11-21 16:39:52
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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