不进入循环

时间:2013-08-19 23:30:23

标签: java swing for-loop jtable system.out

我有以下代码

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 .....我非常困惑。

1 个答案:

答案 0 :(得分:4)

for循环上的条件错误。 for循环仅在条件为true时执行。尝试少于:

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

这样,如果xn小于行数,循环将继续执行,并且它将停止,然后xn达到行数。