本文目录导读:

下面是一个用 Java 统计足球比赛角球数、并判断哪边领先的完整案例。
需求说明
假设一场比赛中有主队和客队,程序需要:
- 记录双方角球数
- 统计总角球数
- 判断哪边角球领先
- 输出统计结果
基础版本
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 ? "客队" : "持平"));