如何为Java掷骰子程序添加roll dice方法与check guess方法?
拆分出rollDice与checkGuess方法的完整代码
下面是重构后的代码,将掷骰子和判断猜数结果的逻辑分别封装为rollDice()和checkGuess()方法,符合作业要求:
package oui; import java.util.Scanner; public class DiceCalc { // 类名遵循Java大驼峰命名规范 // 掷两个骰子,返回点数总和 public static int rollDice() { int dice1 = (int)(Math.random() * 6 + 1); int dice2 = (int)(Math.random() * 6 + 1); return dice1 + dice2; } // 校验猜测结果,输出输赢信息 public static void checkGuess(int userGuess, int diceSum) { System.out.println("Roll: total = " + diceSum); if (diceSum != userGuess) { System.out.println("Sorry with a " + diceSum + " You LOSE :("); } else { System.out.println("Woah!!! With a " + diceSum + " You WIN!!!!!!!"); } } public static void main(String args[]) { Scanner kb = new Scanner(System.in); System.out.println("Enter the number the dice will roll: "); int numGuess = kb.nextInt(); int sum = rollDice(); checkGuess(numGuess, sum); kb.close(); // 关闭Scanner避免资源泄漏 } }
关键改动说明
- rollDice方法:把原来生成两个骰子点数并求和的逻辑单独抽离,方法返回点数总和,职责单一,方便复用和维护。
- checkGuess方法:接收用户猜测的数字和骰子总和,负责判断结果并输出对应的输赢提示,将业务逻辑与输入输出分离。
- 修正了类名(
dicecalc改为DiceCalc),符合Java命名规范;添加了Scanner的关闭操作,避免资源泄漏。
内容的提问来源于stack exchange,提问作者Junk Mail
相关产品推荐
相关产品推荐

