java案例统计失误次数哪队更少?

wen java案例 3

本文目录导读:

java案例统计失误次数哪队更少?

  1. 场景一:两支球队比赛,统计各自的“犯规/失误次数”(业务逻辑)
  2. 场景二:两个开发团队(A组和B组)提交代码,统计谁的“报错”次数更少(异常处理)
  3. 场景三:一场比赛,持续记录失败次数,直到某一方先达到阈值(类似网球破发)

这个问题有点模糊,我需要先澄清一下。“失误” 在编程中通常指代码报错(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 里面存了很多对象,每个对象有 teamNamefaults 属性),或者特定的输入方式(文件、键盘输入),请补充一下,我再帮你写对应的精确代码。

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