2016-05-24 102 views
-2

我有一個問題,我的循環。 如果我不使用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++; 
     } 
+9

您雙擊每x ++這就是爲什麼..刪除 –

+3

你增加Ĵ兩次是在一條線上「獨」增量:在條件一次,一次在塊的末尾。刪除最後一個增量,它應該工作。 – Frank

+0

gosh ......... iam so stupid :)))今天我不能再編碼了,我猜。謝謝! –

回答

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)); 
      }    
     } 

     } 
0

您雙擊INC 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)); 
     }    

    } 
    }