gpt4 book ai didi

Java 没有遍历数组

转载 作者:行者123 更新时间:2023-12-02 04:54:20 26 4
gpt4 key购买 nike

我有 5 个 rectObj 但循环只持续两次。

这是我的代码:

public boolean bottomLeft() {
boolean ret = false;
Iterator<rectObj> rectItr = Main.rectAr.iterator();
while (rectItr.hasNext() && ret == false) {
rectObj e = rectItr.next();
if (x > e.getX() && x < e.getX()+e.getWidth()
&& y+h > e.getY() && y+h < e.getX()+e.getHeight()) {
ret = true;
}else{
if(rectItr.hasNext()) {
rectItr.next();
}
}
}
return ret;
}

rectObj rect1 = new rectObj(250,250,50,50);
rectObj rect2 = new rectObj(0,440,500,50);
rectObj rect3 = new rectObj(0,0,500,50);
rectObj rect4 = new rectObj(400,200,50,50);
rectObj rect5 = new rectObj(0,200,50,50);

rectAr.add(rect1);
rectAr.add(rect2);
rectAr.add(rect3);
rectAr.add(rect4);
rectAr.add(rect5);

我希望循环在整个数组中继续,除非它找到与之发生碰撞的对象。

感谢您的回复!

最佳答案

您在循环内的 else 部分再次调用 rectItr.next() 。尝试删除 if-else 语句的 else 部分。

else 部分检查是否 rectItr.hasNext(),如果有,则调用 rectItr.next()。然后它返回到 while 循环的顶部,再次执行相同的操作。因此,在每个循环中,如果 if 测试为 false,则会额外调用 rectItr.next() 一次,并跳过数组中的下一个元素。

关于Java 没有遍历数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28920922/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com