有人可以向我解释一下 for(int current : values) 是如何工作的。假设我们有这样的方法。谢谢
public int count(int[] values, int value)
{
int count = 0;
for (int current : values)
{
if (current == value)
count++;
}
return count;
}
有人可以向我解释一下 for(int current : values) 是如何工作的。假设我们有这样的方法。谢谢
public int count(int[] values, int value)
{
int count = 0;
for (int current : values)
{
if (current == value)
count++;
}
return count;
}
它相当于:
for (int i = 0; i < values.length; i ++) {
int current = values[i]
...
}
它被称为增强for
循环。(其他编程语言可能使用for ... in
or foreach
,但它们的含义相同。)
这是 Oracle 网站上的一篇关于它的文章。
它不仅仅是一个 for,它是一个 foreach,它的工作原理是这样的:
public int count(int[] values, int value)
{
int count = 0;
for (int i=0;i<values.length;i++)
{
current = values[i];
if (current == value)
count++;
}
return count;
}
for-each 和等价的 for 语句具有这些形式。给出了两种基本的等效形式,取决于它是数组还是被遍历的 Iterable。在这两种情况下,都需要一个额外的变量,即数组的索引。
对于每个循环
for (type var : arr) {
body-of-loop
}
相当于for循环
for (int i = 0; i < arr.length; i++) {
type var = arr[i];
body-of-loop
}
更新:
Turbo C 不支持每个循环。但是同样的,你可以使用 C 的 for 循环结构来实现。
在这里阅读:For Each Loop 支持多种语言
它循环遍历values
数组中的所有元素。与此相同,只是没有索引变量:
for (int i = 0; i < values.length; ++i) {
int count = 0;
if (current == values[i])
count++;
return count;
}
您可以将其视为“for each”循环。换句话说,对于 values 数组中的每个元素,执行此循环。
for(int current : values)
是一个 for-each 循环,类似于:
for(int i =0 ; i< values.length; i++)