Java中如何获取数组每个索引对应的值实现累加求和
问题解决指导
现有代码存在的问题
- 求和方法
sumMethod的调用位置错误:当前放在生成随机数的for循环内部,每生成1个元素就调用1次,应该等数组所有元素都赋值完成后,再统一调用1次求和方法 sumMethod缺少遍历数组累加的核心逻辑:当前仅打印数组对象的内存地址,没有遍历索引取值累加的操作- 冗余创建
Random对象:每次循环都创建新的Random实例,没有必要,可在循环外创建1次复用
核心逻辑实现说明
sumMethod求和逻辑
你可以通过循环遍历数组的所有索引,取出对应元素累加得到总和,步骤如下:
- 初始化累加变量
sum,初始值为0.0 - 用for循环遍历数组从0到
arrayLength-1的所有索引 - 每次循环取出当前索引的元素值,累加到
sum中 - 遍历结束后打印最终的累加总和
修正后的完整代码
import java.util.Random; import java.util.Scanner; public class ArraySumTest { public static void sumMethod(double[] arrayOfDoubles){ int arrayLength = arrayOfDoubles.length; double sum = 0.0; // 遍历所有索引累加 for (int i = 0; i < arrayLength; i++) { sum += arrayOfDoubles[i]; } System.out.println("数组所有元素的累加总和为:" + sum); } public static void main(String[] args) { //1-3: 初始化Scanner对象接收用户输入的数组长度 Scanner keyboard = new Scanner(System.in); System.out.println("请输入数组元素的数量:"); //4: 声明对应长度的double类型数组 int sizeOfArray = keyboard.nextInt(); // 初始化数组 double[] arrayOfDoubles; arrayOfDoubles = new double[sizeOfArray]; // 把Random对象移到循环外复用 Random randomNum = new Random(); for(int i = 0; i < sizeOfArray; i++){ //5: 生成0-100区间的随机浮点数存入数组 arrayOfDoubles[i] = randomNum.nextDouble(0.0 , 100.0); } //6: 所有元素赋值完成后调用求和方法 sumMethod(arrayOfDoubles); // 关闭输入资源 keyboard.close(); } }
运行说明
运行程序后输入数组长度,程序会自动生成对应数量0-100区间的随机浮点数,最后输出所有元素的累加总和。
内容的提问来源于stack exchange,提问作者Kaji
相关产品推荐
相关产品推荐

