这会随机打印正面或反面,如果正面连续打印3次,那么我会报告。现在我有了它,所以如果总共打印了3个头,它将报告它。谢谢。

public static void flip(Random r){
    int heads = 0;
    int totalFlips = 0;
    Random number = new Random();
    int randomNumber;
    do {
        randomNumber = number.nextInt(2)+1;
        if(randomNumber == 1){
            System.out.println("heads");
            heads++;
            totalFlips++;
        }
        else {
            System.out.println("tails");
            totalFlips++;
        }
    } while(heads < 3);

    if(heads == 3){
        System.out.print("3 heads in a row after " +totalFlips + " flips");
    }
}

最佳答案

您正在循环外设置随机数,因此它将选择1或2,并且不会改变。我建议您将随机数生成移动到循环中以每次生成一个新数。

它似乎只挑头的原因是,如果挑尾,它将陷入无限循环。

顺便说一句,使用调试器可以更快地发现此错误。

10-08 13:35