for循环每秒输出

时间:2016-05-24 12:52:31

标签: java

我的for循环出了问题。 如果我不使用for循环,我会得到正确的结果。 输出方法是 sortPriosAtPeriodAtRessource(),如果我的代码是静态的,则工作正常; 但是我不能使它成为静态代码,因为sortPriosAtPeriodAtRessource有时会以(3,4)结束,有时结束于(9,8)

因此,在我的第二个代码中使用for循环,他从不显示(1,1)和(3,1)。他总是"吃"第二个输出。我认为他甚至都没有访问它,但我似乎无视在我的循环中找到错误。

使用:

    PriosSort = datafile.sortPriosAtPeriodAtRessource(0,1);
    System.out.println("");
    for(ProductRessource m : PriosSort){

        System.out.println("Key: " + m.getKey() + " für Makroperiode: " + 1 + " Prio: " + m.getPrioAtPeriode(j));
    }
    PriosSort = datafile.sortPriosAtPeriodAtRessource(1,1);
    System.out.println("");
    for(ProductRessource m : PriosSort){

        System.out.println("Key: " + m.getKey() + " für Makroperiode: " + 2 + " Prio: " + m.getPrioAtPeriode(j));
    }

    PriosSort = datafile.sortPriosAtPeriodAtRessource(2,1);
    System.out.println("");
    for(ProductRessource m : PriosSort){

        System.out.println("Key: " + m.getKey() + " für Makroperiode: " + 3 + " Prio: " + m.getPrioAtPeriode(j));
    }

    PriosSort = datafile.sortPriosAtPeriodAtRessource(3,1);
    System.out.println("");
    for(ProductRessource m : PriosSort){

        System.out.println("Key: " + m.getKey() + " für Makroperiode: " + 4 + " Prio: " + m.getPrioAtPeriode(j));
    }

Doensnt工作:

datafile.getAnzahlRessources可以是1, makroperiodencount可能是4

 for(int i = 1;  i <= datafile.getAnzahlRessources(); i++){

        for(int j = 0 ; j < makroperiodencount; j++){

            PriosSort = datafile.sortPriosAtPeriodAtRessource(j,i);
            System.out.println("");
            for(ProductRessource m : PriosSort){
                periode = j + 1;
                System.out.println("Key: " + m.getKey() + " für Makroperiode: " + periode + " Prio: " + m.getPrioAtPeriode(j));
            }               
            j++;
        }

    i++;
        }

2 个答案:

答案 0 :(得分:1)

删除额外的i ++和j ++并试试这个:

 for(int i = 1;  i <= datafile.getAnzahlRessources(); i++){

        for(int j = 0 ; j < makroperiodencount; j++){

            PriosSort = datafile.sortPriosAtPeriodAtRessource(j,i);
            System.out.println("");
            for(ProductRessource m : PriosSort){
                periode = j + 1;
                System.out.println("Key: " + m.getKey() + " für Makroperiode: " + periode + " Prio: " + m.getPrioAtPeriode(j));
            }               
        }

        }

答案 1 :(得分:0)

你加倍我和j

for(int i = 1;  i <= datafile.getAnzahlRessources(); i++){

    for(int j = 0 ; j < makroperiodencount; j++){

        PriosSort = datafile.sortPriosAtPeriodAtRessource(j,i);
        System.out.println("");
        for(ProductRessource m : PriosSort){
            periode = j + 1;
            System.out.println("Key: " + m.getKey() + " für Makroperiode: " + periode + " Prio: " + m.getPrioAtPeriode(j));
        }               

    }
    }