对于循环形式:Java中的"for(A b:c)"

JAN*_*JAN 3 java foreach loops for-loop

这是我第一次看到这种语法:

// class Node
public class Node { 

...
...

}

public class Otherclass { ... }

Otherclass graph = new Otherclass();

// getSuccessors is a method of Otherclass class 

Node currentNode ;

List<Node> successors = graph.getSuccessors(currentNode);

// weird for loop 

for (Node son : successors) { 

// do something 

}
Run Code Online (Sandbox Code Playgroud)

循环是什么?某种Matlab语法?

还有其他方法可以编写for循环吗?

问候

Ani*_*han 8

这是一个for-each循环(也称为enhanced-for.)

for (type var : arr) { //could be used to iterate over array/Collections class
    body-of-loop
}
Run Code Online (Sandbox Code Playgroud)

在Java 5中扩展了基本for循环,以便更方便地对数组和其他集合进行迭代.这个较新的for语句称为增强for或for-each

(文档)


Ant*_*ist 6

这是一个 for 每个循环。你也可以这样写:

for(int i = 0; i < successors.size(); i++) {
    Node son = successors.get(i);
}
Run Code Online (Sandbox Code Playgroud)

尽管我个人唯一一次这样做是需要索引来执行除访问元素之外的其他操作。