本文目录导读:

- 场景一:两支球队比赛,统计各自的“犯规/失误次数”(业务逻辑)
- 场景二:两个开发团队(A组和B组)提交代码,统计谁的“报错”次数更少(异常处理)
- 场景三:一场比赛,持续记录失败次数,直到某一方先达到阈值(类似网球破发)
这个问题有点模糊,我需要先澄清一下。“失误” 在编程中通常指代码报错(Error/Exception),而 “哪队” 通常指两队对抗(比如游戏、比赛)或两个团队。
根据你的描述,我推测你有以下几种可能的需求,我为你准备了3种常见场景的 Java 代码案例,你看看哪一种符合你的情况:
两支球队比赛,统计各自的“犯规/失误次数”(业务逻辑)
这是最贴近“哪队更少”的案例,假设有两支队伍(A队和B队),我们统计它们的失误次数列表,然后求和比较。
import java.util.Arrays;
import java.util.List;
public class CompareTeamFaults {
public static void main(String[] args) {
// 模拟数据:A队的每次失误次数(比如第一节2次,第二节3次...)
List<Integer> teamAFaults = Arrays.asList(2, 3, 1, 4); // 总共10次
// B队的失误次数
List<Integer> teamBFaults = Arrays.asList(1, 2, 2, 2); // 总共7次
int teamASum = teamAFaults.stream().mapToInt(Integer::intValue).sum();
int teamBSum = teamBFaults.stream().mapToInt(Integer::intValue).sum();
System.out.println("A队总失误: " + teamASum);
System.out.println("B队总失误: " + teamBSum);
if (teamASum < teamBSum) {
System.out.println("A队失误更少");
} else if (teamBSum < teamASum) {
System.out.println("B队失误更少");
} else {
System.out.println("两队失误一样多");
}
}
}
两个开发团队(A组和B组)提交代码,统计谁的“报错”次数更少(异常处理)
如果是指在开发过程中,哪个团队写的代码抛出的异常(Exception) 更少,我们可以模拟一个计数器。
public class CompareExceptionCount {
// 模拟一个可能出错的方法
public static void riskyOperation(String teamName, int[] data) {
try {
// 故意制造一个异常(比如数组越界)
int x = data[10];
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println(teamName + " 发生了一次失误(异常)!");
// 这里把次数传给计数器,我们用返回值或者类变量
throw e; // 重新抛出让计数器统计
}
}
public static void main(String[] args) {
int teamAErrors = 0;
int teamBErrors = 0;
// 模拟A组测试10次代码
for (int i = 0; i < 5; i++) {
try {
riskyOperation("A组", new int[]{1,2,3});
} catch (Exception e) {
teamAErrors++;
}
}
// 模拟B组测试10次代码
for (int i = 0; i < 5; i++) {
try {
riskyOperation("B组", new int[]{1,2,3,4,5,6,7,8,9,10,11}); // 这次不越界
} catch (Exception e) {
teamBErrors++;
}
}
System.out.println("A组失误(异常)次数: " + teamAErrors);
System.out.println("B组失误(异常)次数: " + teamBErrors);
// 判断哪队少
String winner = (teamAErrors <= teamBErrors) ? "A组" : "B组";
System.out.println("失误更少的队伍: " + winner);
}
}
一场比赛,持续记录失败次数,直到某一方先达到阈值(类似网球破发)
如果是实时统计,可以写一个简单的循环模拟。
import java.util.Random;
public class MatchFaultCounter {
public static void main(String[] args) {
Random random = new Random();
int teamAFaults = 0;
int teamBFaults = 0;
// 模拟进行10轮对抗
for (int round = 1; round <= 10; round++) {
// 随机生成每次失误0-3次
int aFault = random.nextInt(4);
int bFault = random.nextInt(4);
teamAFaults += aFault;
teamBFaults += bFault;
System.out.println("第" + round + "轮 -> A队失误: " + aFault + ", B队失误: " + bFault);
}
// 最终比较
int diff = teamAFaults - teamBFaults;
if (diff < 0) {
System.out.println("A队失误更少,少了 " + (-diff) + " 次");
} else if (diff > 0) {
System.out.println("B队失误更少,少了 " + diff + " 次");
} else {
System.out.println("平局!");
}
}
}
请问你想要的是哪一种?
如果你有具体的数据结构(比如是一个 List 里面存了很多对象,每个对象有 teamName 和 faults 属性),或者特定的输入方式(文件、键盘输入),请补充一下,我再帮你写对应的精确代码。