每次在 main 中运行 do-while 循环时,我都无法生成随机数。当我删除 do - while 语句时,if 语句工作正常并且似乎每次都生成一个随机结果但是当它在循环中重复时它似乎只是重复初始结果。
这是我的代码:
import java.util.Random;
public class CoinToss {
private enum Coin {Heads, Tails};
Random randomNum = new Random();
private int result = randomNum.nextInt(2);
private int heads = 0;
private int tails = 1;
Coin coinFlip;
public void flip() {
if (result == 0) {
coinFlip = Coin.Heads;
System.out.println("You flipped Heads!");
} else {
coinFlip = Coin.Tails;
System.out.println("You flipped Tails!");
}
}
}
我的方法主要是我似乎遇到问题的地方:
import java.util.Scanner;
public class TossGame {
public static void main(String[] args) {
CoinToss test = new CoinToss();
int choice;
System.out.println("Welcome to the coin toss game!");
do {
System.out.print("Enter 1 to toss coin or enter 0 to quit: ");
Scanner input = new Scanner(System.in);
choice = input.nextInt();
if (choice == 1) {
test.flip();
} else if (choice > 1) {
System.out.println("Invalid entry - please enter 1 or 0: ");
choice = input.nextInt();
}
} while (choice != 0);
}
}
最佳答案
您需要将结果放在 flip()
方法中,因此每次调用都是随机的。
private int result;
private int heads = 0;
private int tails = 1;
Coin coinFlip;
public void flip(){
result = randomNum.nextInt(2)
if(result == 0){
coinFlip = Coin.Heads;
System.out.println("You flipped Heads!");
}else{
coinFlip = Coin.Tails;
System.out.println("You flipped Tails!");
}
}
}
关于java - 在 Java 中使用随机类的简单抛硬币。 do while 循环似乎不会生成随机结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24174078/