Java 案例:统计失误次数,哪队更少?
下面给你一个完整的 Java 示例,模拟两支队伍(A队、B队)比赛中的失误统计,并判断哪队失误更少。

需求分析
- 有两支队伍:A队 和 B队
- 记录每队的失误次数
- 统计后比较,输出失误更少的队伍
- 若失误次数相同,则输出"平局"
完整代码示例
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class MistakeStatistics {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Map<String, Integer> mistakes = new HashMap<>();
mistakes.put("A队", 0);
mistakes.put("B队", 0);
System.out.println("=== 失误统计系统 ===");
System.out.println("请输入失误记录,格式:队伍名 (A/B),输入 q 结束");
// 1. 循环录入失误
while (true) {
System.out.print("哪队失误?(A/B/q退出): ");
String input = scanner.nextLine().trim().toUpperCase();
if (input.equals("Q")) {
break;
}
String team;
if (input.equals("A")) {
team = "A队";
} else if (input.equals("B")) {
team = "B队";
} else {
System.out.println("输入无效,请输入 A 或 B");
continue;
}
mistakes.put(team, mistakes.get(team) + 1);
}
// 2. 输出统计结果
System.out.println("\n=== 失误统计结果 ===");
for (Map.Entry<String, Integer> entry : mistakes.entrySet()) {
System.out.println(entry.getKey() + " 失误次数: " + entry.getValue());
}
// 3. 比较哪队失误更少
int aMistakes = mistakes.get("A队");
int bMistakes = mistakes.get("B队");
System.out.println("\n=== 比较结果 ===");
if (aMistakes < bMistakes) {
System.out.println("A队失误更少,A队表现更好!");
} else if (bMistakes < aMistakes) {
System.out.println("B队失误更少,B队表现更好!");
} else {
System.out.println("两队失误次数相同,平局!");
}
scanner.close();
}
}
运行示例
=== 失误统计系统 ===
请输入失误记录,格式:队伍名 (A/B),输入 q 结束
哪队失误?(A/B/q退出): A
哪队失误?(A/B/q退出): A
哪队失误?(A/B/q退出): B
哪队失误?(A/B/q退出): A
哪队失误?(A/B/q退出): B
哪队失误?(A/B/q退出): q
=== 失误统计结果 ===
A队 失误次数: 3
B队 失误次数: 2
=== 比较结果 ===
B队失误更少,B队表现更好!
代码升级版(数组实现)
如果队伍固定为两支,用数组更简洁高效:
public class MistakeStats2 {
public static void main(String[] args) {
// 模拟数据:每场比赛两队失误次数
int[] teamA = {3, 5, 2, 4};
int[] teamB = {2, 4, 1, 3};
int sumA = 0, sumB = 0;
for (int i = 0; i < teamA.length; i++) {
sumA += teamA[i];
sumB += teamB[i];
}
System.out.println("A队总失误: " + sumA);
System.out.println("B队总失误: " + sumB);
if (sumA < sumB) {
System.out.println("A队失误更少 ✅");
} else if (sumB < sumA) {
System.out.println("B队失误更少 ✅");
} else {
System.out.println("两队失误相同,平局 ⚖️");
}
}
}
涉及知识点
| 知识点 | 说明 |
|---|---|
HashMap |
用键值对存储队伍与失误数 |
Map.Entry |
遍历 Map 元素 |
Scanner |
读取用户输入 |
if-else |
判断哪队失误更少 |
| 数组遍历 | 批量累加失误次数 |
扩展思路
- 统计多场比赛:每场录入一次数据,最后汇总
- 排序输出:按失误次数从少到多排序队伍
- 文件读取:从
txt或csv文件读取历史失误数据 - 可视化:用柱状图展示(JavaFX/Swing)
如果你有具体的业务场景(比如足球比赛、电竞、考试答题等),告诉我,我可以帮你写出更贴合的版本。