首页 > 解决方案 > 复杂循环 For - 尝试序列行

问题描述

我正在尝试制作一个读取文本文件(内容例如:CRU、AME、3、2、3、0 和更多 n 行)的程序(冠军球队的分类)。在阅读了球队在锦标赛中的比赛(例如:CRU)后,在屏幕上打印:

Equipe: CRU - NumJogos: 8 - Pts Ganhos: 14 - Pts Perdidos: 6 Num.Vits: 4 NumEmps: 2 NumDerts: 2

对于所有冠军球队。

上面的例子我已经要打印了,但是我不能让它按顺序打印其他团队的行。在尝试了 For 或 While 的不同方式后,什么可以帮助我实现?

我的代码:


public class CampMain {

    public static void main(String[] args) {
        String path = "F:\\WORKSPACES\\ws-sds2\\Campeonato\\regJogos2.txt";
        List<Jogos> list = new ArrayList<Jogos>();

        try (BufferedReader br = new BufferedReader(new FileReader(path))) {
            String line = br.readLine(); // le a primeira linha
            line = br.readLine();

            while (line != null) { // para pegar os dados quebrados e posicioná-lo no List
                String[] vect = line.split(",");
                String equipeMandante = vect[0];
                String equipeVisitante = vect[1];
                int numGolsMandante = Integer.parseInt(vect[2]);
                int numGolsVisitante = Integer.parseInt(vect[3]);
                int numPontosMand = Integer.parseInt(vect[4]);
                int numPontosVis = Integer.parseInt(vect[5]);

                Jogos jg = new Jogos(equipeMandante, equipeVisitante, numGolsMandante, numGolsVisitante, numPontosMand, numPontosVis);
                list.add(jg);
                line = br.readLine();
            }
            String[] times = { "CRU", "CAM", "AME", "POU", "PAT", "COI", "BOA", "ATH", "URT", "TOM", "CAL", "UBE" };
            String mandante = "", visitante = "", equipe = "";
            int  pontosEqMan = 0, pontosEqVis = 0;
            int  totalPtsEquipe = 0, numJogos = 0, numVitoriaVis = 0, numVitoriaMand = 0,
                    numEmpateEq = 0, numVitoria = 0, numDerrotas = 0;
            equipe = "";
            int eqsize = 0;
            numJogos++;
            for (int x = 0; x < list.size(); x++) {
                equipe = "CRU";
                mandante = list.get(x).getEquipeMandante();
                visitante = list.get(x).getEquipeVisitante();
                eqsize++;
                if (mandante.equals(equipe) || visitante.equals(equipe)) {
                    if (visitante.equals(equipe)    && (list.get(x).getNumGolsVisitante() > list.get(x).getNumGolsMandante())) {    
                        pontosEqVis += list.get(x).getNumPontosVis();
                        numVitoriaVis++;
                    }
                    if (mandante.equals(equipe) && (list.get(x).getNumGolsMandante() > list.get(x).getNumGolsVisitante())) {
                        pontosEqMan += list.get(x).getNumPontosMand();
                        numVitoriaMand++;
                    }
                    if ((mandante.equals(equipe) || visitante.equals(equipe))
                            && (list.get(x).getNumGolsMandante() == list.get(x).getNumGolsVisitante())) {
                        numEmpateEq++;
                        pontosEqMan += 1;
                    }
                }
            }
            numJogos = eqsize / 6;
            numVitoria = numVitoriaVis + numVitoriaMand;
            numDerrotas = numJogos - (numVitoria + numEmpateEq);
            totalPtsEquipe = pontosEqVis + pontosEqMan;
            System.out.println("Equipe: " + equipe + " -  Numero de Jogos: " + numJogos + " - Pontos Ganhos: "
                    + totalPtsEquipe + " - Pontos Perdidos: " + (totalPtsEquipe - eqsize / 6) + " Num.Vitorias: "
                    + numVitoria + " NumEmpates: " + numEmpateEq + " NumDerrotas: " + numDerrotas);
        } catch (IOException e) {
            System.out.println("Error: " + e.getMessage());
        }
    }
}

打印:

Equipe: CRU - Numero de Jogos: 8 - Pontos Ganhos: 14 - Pontos Perdidos: 6 Numero de Vitorias: 4 Numero de Empates: 2 Numero de derrotas: 2

标签: javafor-loop

解决方案


推荐阅读