Java开发骰子滚动应用Dice类返回值恒为0问题寻求解决方案
问题根因
Die类的value为int类型成员变量,类实例化时默认初始值为0,只有主动调用roll()方法才会更新为1~6的随机数。你当前Dice类的roll()方法仅读取了两个Die实例的value值,没有先触发Die的滚动逻辑,因此返回值始终为0。
修复方案
修改Dice类的roll()方法,先调用每个Die实例的roll()方法生成随机数,再读取数值即可:
public void roll() { // 先触发单个骰子的滚动逻辑 die1.roll(); die2.roll(); die1Value = die1.getValue(); die2Value = die2.getValue(); sum = die1Value + die2Value; }
多次滚动实现
修改完成后,只要循环调用Dice实例的roll()方法即可实现多次滚动,示例代码如下:
public static void main(String[] args) { Dice dice = new Dice(); // 示例:连续滚动10次 for (int i = 1; i <= 10; i++) { System.out.println("第" + i + "次滚动结果:"); dice.roll(); dice.printRoll(); } }
内容的提问来源于stack exchange,提问作者Ben
相关产品推荐
相关产品推荐

