2013-08-19 30 views
-2

我有以下代碼不會去爲循環

ArrayList<Integer> Analysis = new ArrayList<>(); 
ArrayList<Integer> designInitialBuild = new ArrayList<>(); 
ArrayList<Integer> Production = new ArrayList<>(); 
ArrayList<Integer> Strategy = new ArrayList<>(); 
ArrayList<Integer> Testing = new ArrayList<>(); 
System.out.println("jTableLength: " + jTable1.getRowCount()); 
for(int xn=0;xn==jTable1.getRowCount();xn++){ 
    System.out.println(jTable1.getModel().getValueAt(xn, 3).toString()); 
    switch(jTable1.getModel().getValueAt(xn, 3).toString()){  
     case "Analysis": 
      Analysis.add(xn); 
      break; 
     case "Design & Initial Build": 
      designInitialBuild.add(xn); 
      break; 
     case "Production": 
      Production.add(xn); 
      System.out.println("Production"); 
      break; 
     case "Strategy": 
      Strategy.add(xn); 
      break; 
     case "Testing": 
      Testing.add(xn); 
      break; 
     default: 
      System.out.println("I am Broken"); 
      break; 
    } 
} 
System.out.println(Production.size()); 

當我調試它表明變量XN具有-8值的代碼,它永遠不會進入for循環和做的第一件「 println「 在我做的循環之前System.out.println("jTableLength: " + jTable1.getRowCount());它顯示48 .....我非常困惑。

回答

4

您的for循環中的條件錯誤。 for循環將只在條件爲true時執行。儘量小於:

for(int xn=0;xn < jTable1.getRowCount();xn++){ 

這樣,循環將繼續執行,如果xn小於行數,並且它將停止然後xn達到行數。

+0

好吧,我覺得自己像一個完全白癡,出於某種奇怪的原因,我認爲for循環會運行,直到條件成立爲止... thanx作爲快速響應 – user2698080

+0

請務必接受rgettman的答案來關閉此問題@ user2698080 –

+0

我可以在3分鐘內 – user2698080