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以内的随机数,并赋值给数组的每个成
}
这样不行的,给x赋值并不能影响数组,第一种是正确的,如果非要用foreach
那这样
int nIndex = 0;
for (int x : nums) {
nums[index] = (int)(Math.random()*100);
++nIndex;
// 产生一个100以内的随机数,并赋值给数组的每个成
}
和foreach有关系,foreach ,取出来的的x是迭代数组中的数,只有值,不是引用,也就是数组nums[]的一个值的拷贝,你修改x并不会修改数组
x = (int)(Math.random()*100);这个并没有对nums做任何修改。再者foreach用于遍历,不能修改nums,一旦修改了就会报错。
你这只是改变了一个变量,并没有改变数组