Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我如何找到我';您是否迭代了foreach循环?_Java_Loops_Foreach - Fatal编程技术网

Java 我如何找到我';您是否迭代了foreach循环?

Java 我如何找到我';您是否迭代了foreach循环?,java,loops,foreach,Java,Loops,Foreach,如果我试图找到在java中迭代foreach循环的次数,有没有更好的方法 int i = 0; for (Button button : levelBtns) { button = new Button(160, 40 + (i * 50), 100, 40); i++; } 我知道我可以使用一个普通的for循环和一个迭代器,但我只是想知道是否有一种更优雅的方法可以使用foreach来实现这一点。提前感谢:) 编辑:正如Jon Skeet指出的,上面的代码将新按钮实例分配给迭代

如果我试图找到在java中迭代foreach循环的次数,有没有更好的方法

int i = 0;
for (Button button : levelBtns) {
    button = new Button(160, 40 + (i * 50), 100, 40);
    i++;
}
我知道我可以使用一个普通的for循环和一个迭代器,但我只是想知道是否有一种更优雅的方法可以使用foreach来实现这一点。提前感谢:)

编辑:正如Jon Skeet指出的,上面的代码将新按钮实例分配给迭代变量。哎呀。根据其他评论,我认为最实用的方法是使用普通循环。这是我要用的版本。谢谢大家的帮助

Button[] levelBtns = new Button[6];
for (int i = 0; i < levelBtns.length; i++) {
    levelBtns[i] = new Button(160, 40 + (i * 50), 100, 40);
}
Button[]levelBtns=新按钮[6];
对于(int i=0;i
您的解决方案还可以,而且是通用的。但一种可能的方法是


如果它是一个列表,则可以通过获取数组的
levelBtns.size()
,然后获取数组的
array.length

来获取计数器值。如果它不是一个Iterable,而是一个集合或数组,则需要循环后的迭代次数,只需使用Collection.size()方法或数组的长度字段来获取数组的大小,这也是迭代次数。

这是foreach循环的最佳解决方案。否则,您可以使用以下内容:

for (int i = 0; i<levelBtns.lenght; i++) {
  levelBtns[i] = new Button(160, (i + 40) * 50, 100, 40);
}

用于(int i=0;i您需要循环中的信息还是循环后的信息?我相信您已经发布了最佳解决方案。但是,如果您关心当前正在进行的迭代,为什么不切换到传统的for循环。该解决方案完全可以。我假设
levelBtns
是一个数组或
s的集合因此,迭代次数将是
lvlButtons.length
lvlButtons.size()
?您的代码目前毫无意义,因为您正在为迭代变量指定一个新值……这没有任何用处。OP已经提到了
,我知道我可以使用普通for循环和迭代器,但我相信这是一个干净的解决方案。