关于java中的foreach,新人有点小问题
for (int x=0 ; x < length ; x++) {
            nums[x] = (int)(Math.random()*100);  
}

这是不用forezch的语句,要实现在1-100内的数随机生成然后赋值给nums数组

nums数组在之前为赋初值。

当我用foreach语句实现上述功能的时候,随机出来的数组中的值全部是0,这和foreach有没有关系啊?新人刚刚学。。求解答

以下是我改成foreach的语句:

for (int x  :  nums) {
            x = (int)(Math.random()*100);
            // 产生一个100以内的随机数,并赋值给数组的每个成      
        }

4个回答

这样不行的,给x赋值并不能影响数组,第一种是正确的,如果非要用foreach
那这样

int nIndex = 0;
for (int x  :  nums) {
    nums[index] = (int)(Math.random()*100);
    ++nIndex;
    // 产生一个100以内的随机数,并赋值给数组的每个成      
}

x = (int)(Math.random()*100);这个并没有对nums做任何修改。再者foreach用于遍历,不能修改nums,一旦修改了就会报错。

和foreach有关系,foreach ,取出来的的x是迭代数组中的数,只有值,不是引用,也就是数组nums[]的一个值的拷贝,你修改x并不会修改数组

你这只是改变了一个变量,并没有改变数组

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!