【发布时间】:2014-08-22 14:08:15
【问题描述】:
我有这个代码
public void getItems(Node node) {
if (!isFound) {
NodeList list = node.getChildNodes();
outer:
for (int i = 0; i < list.getLength(); i++) {
Node childNode = list.item(i);
if (node.getNodeName().equals("test")) {
for (int size=0; size<node.getChildNodes().getLength(); size++) {
//Some code here
}
isFound = true;
break outer;
}
getItems(childNode);
}
}
}
当它执行“break outer”时,它会跳出外部 for 循环。哪个好。但是外部的for循环在爆发后继续再次启动。为什么会这样?
My isFound 是一个实例变量,设置为 false。
【问题讨论】:
-
但是当一个简单的休息可以在这里的时候为什么你这样做呢?
-
您可能正在查看
getItems方法的递归调用之一的执行情况。 -
那是因为你在递归调用方法!
-
您不会在使 if 语句为真的节点上调用 getItems(),但已经进行的其他调用将继续运行。
-
对不起,我粘贴了错误的代码。现在更新了 OP
标签: java