老师帮看一下

老师帮看一下

闲来无事写写代码,但是老是搞不定,我想定义一个每列不一致的数组,为什么老是报错呢?,我定义相同列数却没问题,

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

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

正在回答

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

2回答

同学你好,如果数组定义在for循环中,则作用范围是当前的for循环,所以会报错。

修改建议:需要在for循环外定义二维数组,具体如下:

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

另外,建议同学下次要将代码粘贴出来,而不要截图哦~方便老师检查!

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

  • 慕标8012353 提问者 #1
    1.第三行定义数组后的=null的意思是创建一个没有指定行列的二维数组吗? 2.另外数组和变量是不是都是只在定义他们的大括号内有效,即局部变量,我只记得老师说过变量在大括号内有效,不记得数组说过。 3.多问个问题,如果我创建一个 public int【】intArrays(int a)这个方法,在主方法中通过for循环随机取列数,行数也是随机,然后通过方法传值到intArrays方法中,在intArrays方法中创建二维数组并赋值行列,然后传值回主方法,这样子这个数组应该就不会报这个错误了吧?
    2019-09-17 14:31:31
好帮手慕酷酷 2019-09-17 15:22:43

同学你好,

1、对于第一个问题,你的理解是正确的,int[][] intArrays = null;是指声明了一个数组的引用intArrays,初始值为null。

2、第二个问题,定义的数组也是变量哦,数组中的值是可以变化的哦~所以如果定义在循环中,也同样是局部变量。

3、第三个问题,你的理解是正确的,使用同学这种方法,是不会报错的。

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

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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