for ( int i=0;i<length;i++) { // 产生一个100以内的随机数,并赋值给数组的每个成员 nums[i]=(int)(Math.random()*100);}为什么不是<=,而是<呢
9 回答
已采纳
211103
TA贡献20条经验 获得超11个赞
这个地方你需要考虑数组的机制,在数组中第一个数的下标是 0,最后一个数的下标应该是数组的长度减1,所以数组在取数的话只能取到 length-1,所以你在取值得时候下标只可以取到length-1,取到length时会报数组下标越界异常。所以要用< 而不是<=
weixin_慕慕1164308
TA贡献2条经验 获得超15个赞
拿100举例,正常我们是从1开始数数,所以100个数就是从1-100也就可以用<=100。而计算机是从0开始数,所以是0-99,也就是<100,你也可以写<=99。如果写<=100就会造成索引越界。
cnyballk
TA贡献148条经验 获得超93个赞
看你要循环的次数,你这个例子的话,因为数组就是下标0开始计算的,而长度是从1开始算的,而那个i是做下标用的,所以你说最大的下标是不是等于长度减1,所以你可以写i<length或者i<=length-1;都可以的
添加回答
举报
0/150
提交
取消