如何修改Java骰子代码以保留两个骰子的最大点数?
如何修改骰子代码获取最大点数
首先先修正原代码里的一个问题:你用了中文引号(“”),Java里字符串必须用英文双引号(""),不然会编译报错,这可能是你之前尝试失败的原因之一。
下面给你几种获取两个骰子最大点数的实现方式:
方法1:使用Math.max()(最简洁)
Java的Math类提供了现成的静态方法max(),可以直接返回两个整数的最大值,代码修改如下:
public class RollTheDice { public static void main(String[] args) { int die1; int die2; int maxRoll; // 把原来的roll改成maxRoll,语义更清晰 die1 = (int)(Math.random() * 6) + 1; die2 = (int)(Math.random() * 6) + 1; maxRoll = Math.max(die1, die2); // 直接调用Math.max获取最大值 System.out.println("First number is......" + die1); System.out.println("The second number is......" + die2); System.out.println("The maximum number is......" + maxRoll); // 新增输出最大值的语句 } }
方法2:用if-else手动判断(适合理解逻辑)
如果想手动实现判断逻辑,可以用if-else语句:
public class RollTheDice { public static void main(String[] args) { int die1; int die2; int maxRoll; die1 = (int)(Math.random() * 6) + 1; die2 = (int)(Math.random() * 6) + 1; // 手动判断最大值 if (die1 > die2) { maxRoll = die1; } else { maxRoll = die2; } System.out.println("First number is......" + die1); System.out.println("The second number is......" + die2); System.out.println("The maximum number is......" + maxRoll); } }
方法3:使用三元运算符(更简洁的手动写法)
三元运算符可以把if-else的逻辑压缩成一行:
public class RollTheDice { public static void main(String[] args) { int die1; int die2; int maxRoll; die1 = (int)(Math.random() * 6) + 1; die2 = (int)(Math.random() * 6) + 1; maxRoll = die1 > die2 ? die1 : die2; // 三元运算符:条件?真值:假值 System.out.println("First number is......" + die1); System.out.println("The second number is......" + die2); System.out.println("The maximum number is......" + maxRoll); } }
这三种方法都能实现你的需求,其中Math.max()是最推荐的方式,因为它是Java官方提供的成熟方法,代码更简洁易读。
内容的提问来源于stack exchange,提问作者Mythy
相关产品推荐
相关产品推荐

