在for函数中,“:”代表什么

时间:2012-02-12 03:43:11

标签: java

我有这段代码,我想知道函数中的“:”是什么意思

Element[][] grid = readFile();
for (Element[] ea : grid) {
    for (Element e : ea)
         System.out.print(e.getChar());
     System.out.println();

6 个答案:

答案 0 :(得分:4)

就语言等效而言,您可以将其视为“in”。您可以将其读作“对于'ea'中的每个元素'e'”。

以下是该类型循环的文档:http://docs.oracle.com/javase/1.5.0/docs/guide/language/foreach.html

答案 1 :(得分:1)

:中使用for时,它会充当for-each循环。每次迭代时,冒号后面的变量都被赋值给数组中的下一个值。

int[] arr = {1,2,3,4};
for ( arr : num ) {
    System.out.print( num + " " );
}
// prints "1 2 3 4 "

答案 2 :(得分:1)

这是对Collections和Array的每一种理解。它与Python等提供in功能的语言相同。因此,当您在:循环中看到for时,请将其读作in。有关详细信息,请参阅此http://docs.oracle.com/javase/1.5.0/docs/guide/language/foreach.html

在您的情况下,它就像for ea in grid

答案 3 :(得分:1)

这种类型的循环称为'for-each'循环。冒号(:)读作'in'。基本上,这种类型的for循环用于集合。

可以理解为: -

for each element x in collection Y{
//do something
}

这里,在每次迭代中,元素x指的是集合Y中的各个元素。即,在第一次迭代中,x将是Y [0],在第二次迭代中,x将是y [1],依此类推直到最后。

优点是条件检查和所有这些东西不需要明确写入。当集合中的迭代元素按顺序结束时,它尤其有用。这使得对集合的迭代变得更加容易。它比使用迭代器更容易。

在你的代码中,使用嵌套的for-each循环打印二维数组'ea'的每个元素。外循环遍历每一行(一维数组),内循环遍历相应行中的每个元素。

参考: - For-each loop
Related question in stackoverflow

答案 4 :(得分:0)

这是新增强的for循环。

您可以大声读出网格中的每个元素ea。它迭代网格中的元素。

这是一个不错的tutorial

答案 5 :(得分:0)

它只是临时变量与Iterable 或数组之间的分隔符。
它被称为foreach循环,基本上意味着:
"对于ae Iterable中的每个元素grid,执行{...}"

在此处阅读更多内容: The For-Each Loop

例如,

Iterable是一个数组或列表。