You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java抛硬币游戏如何实现正反面出现次数统计及实时输出功能

实现方案

你只需要新增计数变量存储正反面出现次数,每次抛硬币后更新并打印统计结果即可,具体修改如下:

核心修改思路

  • 在CoinToss类中新增两个整数类型的成员变量,分别对应正面、反面的出现总次数
  • 每次抛硬币得到结果后,给对应计数器加1,同时打印最新的统计数据
  • 额外优化:原代码每次调用抛硬币方法都会新建Random实例,重复创建浪费资源,可改为全局复用一个Random实例

修改后完整代码

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

public class CoinToss {
    private enum Coin {
        Head, Tail
    }

    // 新增统计计数变量
    private int headCount = 0;
    private int tailCount = 0;
    // 全局复用Random实例
    private Random r = new Random();

    public static void main(String[] args) {
        CoinToss game = new CoinToss();
        game.startGame();
    }

    private void startGame() {
        Scanner scanner = new Scanner(System.in);
        Coin guess;

        while (true) {
            System.out.print("请输入你的猜测:输入1代表猜正面,2代表猜反面,3代表退出游戏:");
            String choice = scanner.nextLine();

            if (choice.equalsIgnoreCase("3")) {
                // 退出前打印总统计
                System.out.println("=== 游戏结束总统计 ===");
                System.out.println("正面总出现次数:" + headCount);
                System.out.println("反面总出现次数:" + tailCount);
                break;
            } else if (choice.equalsIgnoreCase("1")) {
                guess = Coin.Head;
            } else if (choice.equalsIgnoreCase("2")) {
                guess = Coin.Tail;
            } else {
                System.out.println("请输入合法选项:1(正面)、2(反面)、3(退出)");
                continue;
            }

            Coin toss = tosscoin();
            // 更新计数
            if (toss == Coin.Head) {
                headCount++;
            } else {
                tailCount++;
            }
            // 打印最新统计
            System.out.println("=== 当前统计 ===");
            System.out.println("正面出现次数:" + headCount);
            System.out.println("反面出现次数:" + tailCount);

            if (guess == toss) {
                System.out.println("恭喜你猜对了!");
            } else {
                System.out.println("很遗憾你猜错了");
            }
        }
        scanner.close();
    }

    private Coin tosscoin() {
        int sideup = r.nextInt(2);
        if (sideup == 1) {
            return Coin.Head;
        } else {
            return Coin.Tail;
        }
    }
}

运行逻辑说明

每次用户输入有效猜测完成抛硬币后,程序会先更新对应正反面的计数,立刻输出当前最新的统计结果,用户选择退出时也会输出全局总统计,完全匹配需求。

内容的提问来源于stack exchange,提问作者Dominic Salinas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 06:36:07