我有这段代码,我想知道函数中的“:”是什么意思
Element[][] grid = readFile();
for (Element[] ea : grid) {
for (Element e : ea)
System.out.print(e.getChar());
System.out.println();
答案 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'的每个元素。外循环遍历每一行(一维数组),内循环遍历相应行中的每个元素。
答案 4 :(得分:0)
答案 5 :(得分:0)
它只是临时变量与Iterable
或数组之间的分隔符。
它被称为foreach
循环,基本上意味着:
"对于ae
Iterable
中的每个元素grid
,执行{...}
"
在此处阅读更多内容: The For-Each Loop
例如, Iterable
是一个数组或列表。