连续计数Java硬币投掷

连续计数Java硬币投掷,java,loops,count,Java,Loops,Count,编写一个程序,用给定的数字模拟抛硬币 一系列的审判。确定准确测试所需的最小试验次数 连续三个头像出现。此外,还要确定尾部和尾部的数量 头 我在跟踪连续的head计数时遇到问题,直到达到3个连续的head结果。我正在寻找一个循环的正确实现,以检查三个连续的head结果。我知道我需要使用一个布尔值和一个while循环。虽然概念上有点偏离,但在花时间绘制流程[掷硬币实现][1]后,它变得清晰起来 import java.util.Scanner; import java.util.Random; p

编写一个程序,用给定的数字模拟抛硬币 一系列的审判。确定准确测试所需的最小试验次数 连续三个头像出现。此外,还要确定尾部和尾部的数量 头

我在跟踪连续的head计数时遇到问题,直到达到3个连续的head结果。我正在寻找一个循环的正确实现,以检查三个连续的head结果。我知道我需要使用一个布尔值和一个while循环。虽然概念上有点偏离,但在花时间绘制流程[掷硬币实现][1]后,它变得清晰起来

import java.util.Scanner;
import java.util.Random;

public class Main {
    //User created Data type: Face
    enum Face {
        HEAD, TAIL;
    }
    
    // < 0.5 if random value is less than 0.5 == Tails ; if greater than 0.5 == Heads
    public static Face toss_coin() {
        return (Math.random() < 0.5 ? Face.TAIL : Face.HEAD);
    }
    
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("How many trials?");
        int num_trials = input.nextInt();
        int i, count = 0, count_until_head = 0, count_until_tail=0, consecutive=0;
        //Loop for the amount of trials
        for(i=1; i<=num_trials; i++) {
            Face face_up = toss_coin();
            System.out.println(face_up + " ");
            
            //Counts number of Heads & Tails
            switch(face_up) {
                case HEAD:
                        count_until_head++;
                        consecutive++;
                        break;
                
                case TAIL:
                        count_until_tail++;
                        consecutive=0;
                        break;
            } // switch
           
        } // amount of trials
        System.out.print("\nNumber of heads: " + count_until_head + "\nNumber of Tails: " + count_until_tail);
        System.out.print("\nOut of: " + num_trials);
        System.out.print("\nConsec: " + consecutive);
        
    } // void()
} //Main


  [1]: https://i.stack.imgur.com/WRnAk.jpg
import java.util.Scanner;
导入java.util.Random;
公共班机{
//用户创建的数据类型:面
枚举面{
头、尾;
}
//<0.5如果随机值小于0.5==尾部;如果大于0.5==头部
公众静态正面抛硬币(){
返回(Math.random()<0.5?Face.TAIL:Face.HEAD);
}
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
System.out.println(“多少次试验?”);
int num_trials=input.nextInt();
int i,count=0,count\u直到头=0,count\u直到尾=0,连续=0;
//循环测试的数量

对于(i=1;i您只需将条件
连续<3
添加到
for
循环条件:


用于(i=1;连续<3&&i Java命名约定对类使用CamelCase;CamelCase对变量和方法使用。只有常量使用SNAKE_CASE。在Java名称中不应使用下划线。最近我们遇到了很多类似的问题。问题是什么?你会陷入一种无休止的循环吗?或者你需要知道如何使用当
连续==3
时退出循环?您需要一个变量来跟踪totalHeads和totalTails。@nomaker似乎有计数器
count\u until\u head
count\u until\u tail