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
相关产品推荐
相关产品推荐

