我正在尝试创建一种方法,让用户预测模拟的抛硬币是正面还是反面。我无法将随机数分配给 1 或 2(对于头尾)。我相信我的尝试(下面的代码)给了我 0、1 和 2。
public static void coinToss(String call){
//setting up random
Random random = new Random();
//set user guess to numeric value
int guessNo=0;
if (call.equalsIgnoreCase("heads")){
guessNo=1;
}else if (call.equalsIgnoreCase("tails")){
guessNo=2;
}else System.out.println("Invalid. Enter either heads or tails");
//setting result for coin toss
**int result = random.nextInt(2);**
System.out.println("Trace: numberic result is:" + result);
//if...else statement to print results of coin toss
if (result==1){
System.out.println("Result: heads");
}else if (result==2){
System.out.println("Result: Tails");
}else System.out.println("Invalid result");
if (guessNo==result){
System.out.println("Guess Correct");
}else System.out.println("Guess incorrect");
}//method end
我是一个相对的java新手(显然!)所以非常感谢您的帮助!
最佳答案
建议在 nextInt(2) 结果中加 1 的答案是正确的,但可能不是正确的长期策略。在许多方面,Java 更喜欢尽可能从 0 开始的数字序列。例如,数组索引值从 0 到 length-1。
最好将头/尾的内部编码更改为使用 [0,1] 而不是 [1,2],并直接使用 nextInt 结果。
关于java - 当需要随机数时如何设置限制(1 或 2)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19894556/