我有以下代码
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 .....我非常困惑。
答案 0 :(得分:4)
for
循环上的条件错误。 for
循环仅在条件为true
时执行。尝试少于:
for(int xn=0;xn < jTable1.getRowCount();xn++){
这样,如果xn
小于行数,循环将继续执行,并且它将停止,然后xn
达到行数。