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