You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java类与布尔数组问题:实现骰子掷出1-6各一次的停止逻辑

解决用布尔数组检测骰子1-6点数全出现的问题

我看了你现在的代码,核心问题出在把骰子的整数点数和布尔数组的元素值做比较,这完全不对,而且代码只执行了一次掷骰子就结束,也没拆分出三个类。咱们一步步来修正:

首先,先确认Die类的实现(你说已有这个类,这里给出一个标准版本方便后续使用):

public class Die {
    private int faceValue;
    private Random random;

    public Die() {
        random = new Random();
        roll(); // 创建时就先掷一次骰子
    }

    public void roll() {
        // 生成1到6的随机数,对应骰子点数
        faceValue = random.nextInt(6) + 1;
    }

    public int getFaceValue() {
        return faceValue;
    }
}

接下来,创建第二个类AllDiceValuesChecker,专门负责处理“检测所有点数是否出现”的逻辑,这里就用到布尔数组:

import java.util.Random;

public class AllDiceValuesChecker {
    // 布尔数组索引0不用,1-6对应骰子的1-6点,默认都是false(未出现)
    private boolean[] seenValues = new boolean[7];
    private Die die = new Die();

    // 核心方法:持续掷骰子直到所有点数都出现
    public void rollUntilAllSeen() {
        int rollTimes = 0;
        // 只要还有点数没出现,就继续掷
        while (!isAllValuesSeen()) {
            die.roll();
            rollTimes++;
            int currentPoint = die.getFaceValue();
            // 关键:用当前点数作为数组索引,标记为已出现
            seenValues[currentPoint] = true;
            System.out.printf("第%d次掷出:%d%n", rollTimes, currentPoint);
        }
        System.out.println("🎉 所有1-6的点数都已经掷出来啦!");
    }

    // 辅助方法:检查1-6点是否都已标记为true
    private boolean isAllValuesSeen() {
        for (int i = 1; i <= 6; i++) {
            // 只要有一个点数没出现,就返回false
            if (!seenValues[i]) {
                return false;
            }
        }
        return true;
    }
}

最后,创建第三个测试类DiceTest,作为程序的入口:

public class DiceTest {
    public static void main(String[] args) {
        AllDiceValuesChecker checker = new AllDiceValuesChecker();
        checker.rollUntilAllSeen();
    }
}

关键修正点说明

  • 布尔数组关联点数:不再把点数和数组元素值比较,而是直接用点数作为数组的索引(比如掷出3,就操作seenValues[3]),这样就能准确标记对应点数是否出现
  • 循环逻辑:用while循环持续掷骰子,直到isAllValuesSeen()返回true(所有点数都出现)
  • 类拆分:严格分成三个类:Die(骰子基础类)、AllDiceValuesChecker(业务逻辑类)、DiceTest(测试入口类),满足你的要求

内容的提问来源于stack exchange,提问作者Stacyx9

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:33:28