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

Java彩票作业如何调整System.out.print仅输出最终中奖号码行

核心问题原因

你当前的打印逻辑全部放在while循环内部,循环每执行一次就会触发一次打印,自然会输出所有中间过程的结果。只需要把整段打印代码移到while循环结束之后即可解决问题。

修改后的代码示例

// 先执行号码生成逻辑,生成过程中不做打印
while (numCount <= 9) {
    int randNumber = rand.nextInt(99) + 1;
    boolean isDuplicate = false;
    // 优化原有重复判断逻辑,无需写10个并列条件
    for (int num : results) {
        if (num == randNumber) {
            isDuplicate = true;
            break;
        }
    }
    if (!isDuplicate) {
        Array.setInt(results, numCount, randNumber);
        numCount++;
    }
}

// 所有号码生成完成、退出循环后再打印最终结果
System.out.print("The Lottery Numbers are: ");
for (int i = 0; i < 10; i++) {
    // 小于10的数字补前导0
    if (results[i] < 10) {
        System.out.print("0" + results[i] + " ");
    } else {
        System.out.print(results[i] + " ");
    }
}

可选优化点

  • 可以用HashSet存储生成的号码,天然支持去重,无需手动编写重复判断逻辑,代码更简洁
  • 补前导0的逻辑可以直接用String.format("%02d", results[i])实现,无需单独写if判断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:24:05