公习习月龙月龙
2016-10-15 05:56
采纳率: 100%
浏览 853
已采纳

关于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条回答 默认 最新

  • AlbertS 2016-10-15 06:04
    已采纳

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

    int nIndex = 0;
    for (int x  :  nums) {
        nums[index] = (int)(Math.random()*100);
        ++nIndex;
        // 产生一个100以内的随机数,并赋值给数组的每个成      
    }
    
    
    已采纳该答案
    打赏 评论
  • 当作看不见 2016-10-15 06:06

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

    打赏 评论
  • Xth8013 2016-10-15 06:08

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

    打赏 评论
  • zilin-lynn 2016-10-15 07:49

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

    打赏 评论

相关推荐 更多相似问题