java - 连续打印 3 次并记录?

标签 java if-statement random while-loop

这会随机打印正面或反面,如果正面连续打印 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 并且不会改变。我建议您将随机数生成移到循环内以每次生成一个新数字。

它似乎只选择正面的原因是,如果它选择反面,它将进入无限循环。

顺便说一句,使用调试器会更快地发现这个错误。

关于java - 连续打印 3 次并记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28130523/

相关文章:

java - 服务在 android 8 (oreo) 下意外停止

在函数返回之间进行选择

javascript - 将颜色/字体大小/CSS 添加到 Javascript

c - 播种 srand() 的最佳方法是什么?

css - 元素或 div 之间的随机间隙

java - 在接口(interface)中创建两个通用参数

java - 用于 Elasticsearch 的RestClient

java - 限制 Java 方法调用的 CPU/堆栈?

c - 为什么有多个作品,如果不是这种情况

Mac OSX 上的 Python 2.7。无法导入随机包 环境已损坏