如何用循环将随机数存入数组并实现后续数组求和比较?
完善随机数数组存储与求和比较的Java实现
Hey,我看你已经写了Die类的基础框架,现在帮你完善随机数数组存储、求和以及不同数组总和比较的功能。先挑出现有代码里的几个小问题,再一步步扩展出完整功能:
现有代码的小问题
rollDie()方法里的randomNumbers.nextInt(6*1)生成的是0-5的整数,但骰子点数应该是1-6,得调整生成逻辑displayDie()里创建的数组是局部变量,方法执行完就销毁了,没法后续用来求和比较- 输出语句只打印了
die[1],没遍历完所有数组元素,而且数组索引从0开始,要注意遍历逻辑
修改后的完整实现
先更新Die类,添加数组存储、求和、比较的核心功能:
import java.util.Random; public class Die { private int dieValue = 0; private Random randomNumbers = new Random(); // 新增成员变量存储骰子数组,方便后续操作 private int[] diceArray; public Die() { } // 修正:生成1-6的随机数(模拟标准骰子) public void rollDie() { dieValue = randomNumbers.nextInt(6) + 1; } // 生成指定长度的骰子数组并存储 public void generateDiceArray(int length) { diceArray = new int[length]; for (int counter = 0; counter < diceArray.length; counter++) { rollDie(); diceArray[counter] = dieValue; } } // 显示当前骰子数组的内容 public void displayDiceArray() { if (diceArray == null) { System.out.println("请先生成骰子数组!"); return; } System.out.print("Your Dies are: "); for (int i = 0; i < diceArray.length; i++) { if (i > 0) { System.out.print(", "); } System.out.print(diceArray[i]); } System.out.println(); } // 计算当前骰子数组的总和 public int calculateSum() { if (diceArray == null) { return 0; } int sum = 0; for (int num : diceArray) { sum += num; } return sum; } // 比较两个Die对象的数组总和 public void compareSum(Die anotherDie) { int mySum = this.calculateSum(); int anotherSum = anotherDie.calculateSum(); System.out.println("我的骰子总和:" + mySum); System.out.println("另一个骰子总和:" + anotherSum); if (mySum > anotherSum) { System.out.println("我的总和更大!"); } else if (mySum < anotherSum) { System.out.println("另一个的总和更大!"); } else { System.out.println("两个总和相等!"); } } // 提供获取数组的方法,方便外部自定义操作 public int[] getDiceArray() { return diceArray; } }
测试功能的示例代码
写个测试类演示怎么生成数组、查看内容、比较总和:
public class DieTest { public static void main(String[] args) { // 创建第一个Die实例,生成3个骰子的数组 Die die1 = new Die(); die1.generateDiceArray(3); die1.displayDiceArray(); // 创建第二个Die实例,生成5个骰子的数组 Die die2 = new Die(); die2.generateDiceArray(5); die2.displayDiceArray(); // 比较两个数组的总和 die1.compareSum(die2); } }
关键功能说明
diceArray成员变量:专门存储生成的骰子数组,确保数据能被后续方法复用generateDiceArray(int length):按需生成指定长度的随机骰子数组,替代原来的局部数组逻辑calculateSum():遍历数组计算总和,为比较功能提供数据支撑compareSum(Die anotherDie):直接接收另一个Die对象,对比两者的总和并输出结果
内容的提问来源于stack exchange,提问作者Bren Igloo
相关产品推荐
相关产品推荐

