黑马程序员技术交流社区

标题: forreach写错了帮忙解决 [打印本页]

作者: 庭院深深深几许    时间: 2019-2-25 15:29
标题: forreach写错了帮忙解决
[HTML] 纯文本查看 复制代码
//导入java.util.Arrays;
import java.util.Arrays;

public class HelloWorld {
    public static void main(String[] args) {
        
         // 创建对象,对象名为hello
            HelloWorld hello = new HelloWorld();
        
        // 调用方法并将返回值保存在变量中
                int[] nums = hello.getArray(8);
        
        // 将数组转换为字符串并输出
                System.out.println(Arrays.toString(nums));
        }

        /*
         * 功能:创建指定长度的int型数组,并生成100以内随机数为数组中的每个元素赋值
         * 定义一个带参带返回值的方法,通过参数传入数组的长度,返回赋值后的数组
         */
        public int[] getArray(int length) {
        // 定义指定长度的整型数组
                int[] nums = new int[length];
        
        // 循环遍历数组赋值
                for ( int i:nums ) {
            
                        // 产生一个100以内的随机数,并赋值给数组的每个成员
                    i = (int)(Math.random()*100);
        
                }
                return i; // 返回赋值后的数组
        }
}


作者: 庭院深深深几许    时间: 2019-2-25 15:29
[HTML] 纯文本查看 复制代码
由于数组中存放的是基本类型int的数据,而基本类型在传递时都是值传递,因此这种foreach的写法其实是把数组中每个元素遍历后分别赋给了变量i,因此为变量i赋值并不会改变数组中的每个元素的值,在处理基本类型时建议使用以下方式,直接设置数组中每个元素的值:
for (int i = 0; i < nums.length; i++) {
nums=1;
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2