java案例统计角球数哪边领先?

wen java案例 5

本文目录导读:

java案例统计角球数哪边领先?

  1. 需求说明
  2. 基础版本
  3. 面向对象版本
  4. 从数组批量统计版本
  5. 扩展思路

下面是一个用 Java 统计足球比赛角球数、并判断哪边领先的完整案例。

需求说明

假设一场比赛中有主队和客队,程序需要:

  1. 记录双方角球数
  2. 统计总角球数
  3. 判断哪边角球领先
  4. 输出统计结果

基础版本

public class CornerStats {
    public static void main(String[] args) {
        // 主队角球数
        int homeCorners = 7;
        // 客队角球数
        int awayCorners = 5;
        // 总角球数
        int totalCorners = homeCorners + awayCorners;
        System.out.println("===== 角球统计 =====");
        System.out.println("主队角球: " + homeCorners);
        System.out.println("客队角球: " + awayCorners);
        System.out.println("总角球数: " + totalCorners);
        // 判断哪边领先
        if (homeCorners > awayCorners) {
            System.out.println("角球领先方: 主队 (领先 " + (homeCorners - awayCorners) + " 个)");
        } else if (homeCorners < awayCorners) {
            System.out.println("角球领先方: 客队 (领先 " + (awayCorners - homeCorners) + " 个)");
        } else {
            System.out.println("角球数: 双方持平");
        }
    }
}

输出示例:

===== 角球统计 =====
主队角球: 7
客队角球: 5
总角球数: 12
角球领先方: 主队 (领先 2 个)

面向对象版本

如果需要处理多场比赛,建议封装成类。

class MatchCorners {
    private String homeTeam;
    private String awayTeam;
    private int homeCorners;
    private int awayCorners;
    public MatchCorners(String homeTeam, String awayTeam, int homeCorners, int awayCorners) {
        this.homeTeam = homeTeam;
        this.awayTeam = awayTeam;
        this.homeCorners = homeCorners;
        this.awayCorners = awayCorners;
    }
    // 总角球数
    public int getTotalCorners() {
        return homeCorners + awayCorners;
    }
    // 返回领先方描述
    public String getLeadingSide() {
        if (homeCorners > awayCorners) {
            return homeTeam + " 领先 " + (homeCorners - awayCorners) + " 个";
        } else if (homeCorners < awayCorners) {
            return awayTeam + " 领先 " + (awayCorners - homeCorners) + " 个";
        } else {
            return "双方持平";
        }
    }
    public void printStats() {
        System.out.println("===== " + homeTeam + " vs " + awayTeam + " =====");
        System.out.println(homeTeam + " 角球: " + homeCorners);
        System.out.println(awayTeam + " 角球: " + awayCorners);
        System.out.println("总角球数: " + getTotalCorners());
        System.out.println("角球领先: " + getLeadingSide());
        System.out.println();
    }
}
public class CornerStatsDemo {
    public static void main(String[] args) {
        MatchCorners match1 = new MatchCorners("曼城", "利物浦", 8, 4);
        MatchCorners match2 = new MatchCorners("皇马", "巴萨", 3, 3);
        MatchCorners match3 = new MatchCorners("拜仁", "多特", 2, 6);
        match1.printStats();
        match2.printStats();
        match3.printStats();
    }
}

输出示例:

===== 曼城 vs 利物浦 =====
曼城 角球: 8
利物浦 角球: 4
总角球数: 12
角球领先: 曼城 领先 4 个
===== 皇马 vs 巴萨 =====
皇马 角球: 3
巴萨 角球: 3
总角球数: 6
角球领先: 双方持平
===== 拜仁 vs 多特 =====
拜仁 角球: 2
多特 角球: 6
总角球数: 8
角球领先: 多特 领先 4 个

从数组批量统计版本

如果角球数据来自数组(例如实时采集),可以这样统计:

public class CornerArrayStats {
    public static void main(String[] args) {
        // 每次事件: 0=主队角球, 1=客队角球
        int[] cornerEvents = {0, 1, 0, 0, 1, 0, 1, 0, 0, 1};
        int home = 0, away = 0;
        for (int event : cornerEvents) {
            if (event == 0) home++;
            else if (event == 1) away++;
        }
        System.out.println("主队角球: " + home);
        System.out.println("客队角球: " + away);
        System.out.println("总角球: " + (home + away));
        System.out.println("领先方: " +
                (home > away ? "主队" : home < away ? "客队" : "持平"));
    }
}

扩展思路

如果需要更完整,可以加上:

  • 按时间段统计:上半场 / 下半场角球
  • 先获得角球方:第一个角球属于谁
  • 连续角球:某队连续获得几个角球
  • 从文件/数据库读取:用 BufferedReader 读取比赛事件
  • 实时更新:结合 Scanner 或 WebSocket 动态输入

例如判断“哪边先拿到角球并且最终领先”:

int firstCorner = cornerEvents[0]; // 0主 1客
String firstSide = (firstCorner == 0) ? "主队" : "客队";
System.out.println("首个角球: " + firstSide);
System.out.println("最终领先: " + (home > away ? "主队" : home < away ? "客队" : "持平"));

抱歉,评论功能暂时关闭!