为什么我的 for 循环不通过我的 LinkedList?
Why is my for loop not going though my LinkedList?
我创建了几个点并将它们添加到 LinkedList 中。我试图遍历每个点,在它和所有其他点之间画一条线。我创建了这两个 for 循环来执行此操作,但是,只有第二个循环遍历 LinkedList。我测试的时候列表里有4个点。
这是我的代码:
public void draw(Graphics2D g){
g.setColor(Color.BLACK);
g.setStroke(new BasicStroke(10));
System.out.println("Linked List Size: " + points.size());
for(int i = 0; i < points.size(); i++){
System.out.println("Current Point: " + points.get(i));
Point2D tempPoint = points.get(i);
for(i = 0; i < points.size(); i++){
Point2D tempEndPoint = points.get(i);
g.drawLine((int)tempPoint.getX(), (int)tempPoint.getY(), (int)tempEndPoint.getX(), (int)tempEndPoint.getY());
System.out.println("" + (int)tempPoint.getX() + " " + (int)tempPoint.getY() + " " + (int)tempEndPoint.getX() + " " +(int)tempEndPoint.getY());
}
}
}
打印语句仅用于测试目的。
谢谢
您在两个循环中使用了相同的计数器 i
。
您正在使用相同的变量索引 i
,更改为另一个字母,例如 j
。
for(int i = 0; i < points.size(); i++){
System.out.println("Current Point: " + points.get(i));
Point2D tempPoint = points.get(i);
for(int j = 0; j < points.size(); j++){
Point2D tempEndPoint = points.get(j);
g.drawLine((int)tempPoint.getX(), (int)tempPoint.getY(), (int)tempEndPoint.getX(), (int)tempEndPoint.getY());
System.out.println("" + (int)tempPoint.getX() + " " + (int)tempPoint.getY() + " " + (int)tempEndPoint.getX() + " " +(int)tempEndPoint.getY());
}
}
在第二个循环中您还使用 i
因此在第二个循环之后 i == points.size()
并且您的第一个循环条件为假。例如,对第二个循环使用 j
。
你的两个循环都使用变量“i”。
只需在第二个循环中为变量使用另一个名称即可。
我创建了几个点并将它们添加到 LinkedList 中。我试图遍历每个点,在它和所有其他点之间画一条线。我创建了这两个 for 循环来执行此操作,但是,只有第二个循环遍历 LinkedList。我测试的时候列表里有4个点。
这是我的代码:
public void draw(Graphics2D g){
g.setColor(Color.BLACK);
g.setStroke(new BasicStroke(10));
System.out.println("Linked List Size: " + points.size());
for(int i = 0; i < points.size(); i++){
System.out.println("Current Point: " + points.get(i));
Point2D tempPoint = points.get(i);
for(i = 0; i < points.size(); i++){
Point2D tempEndPoint = points.get(i);
g.drawLine((int)tempPoint.getX(), (int)tempPoint.getY(), (int)tempEndPoint.getX(), (int)tempEndPoint.getY());
System.out.println("" + (int)tempPoint.getX() + " " + (int)tempPoint.getY() + " " + (int)tempEndPoint.getX() + " " +(int)tempEndPoint.getY());
}
}
}
打印语句仅用于测试目的。 谢谢
您在两个循环中使用了相同的计数器 i
。
您正在使用相同的变量索引 i
,更改为另一个字母,例如 j
。
for(int i = 0; i < points.size(); i++){
System.out.println("Current Point: " + points.get(i));
Point2D tempPoint = points.get(i);
for(int j = 0; j < points.size(); j++){
Point2D tempEndPoint = points.get(j);
g.drawLine((int)tempPoint.getX(), (int)tempPoint.getY(), (int)tempEndPoint.getX(), (int)tempEndPoint.getY());
System.out.println("" + (int)tempPoint.getX() + " " + (int)tempPoint.getY() + " " + (int)tempEndPoint.getX() + " " +(int)tempEndPoint.getY());
}
}
在第二个循环中您还使用 i
因此在第二个循环之后 i == points.size()
并且您的第一个循环条件为假。例如,对第二个循环使用 j
。
你的两个循环都使用变量“i”。
只需在第二个循环中为变量使用另一个名称即可。