我搜索了SO,可以找到解决类似主题的问题,但没有针对这个具体问题和语言。在阅读了一些Q& A但未找到答案后,我搜索了java,for-loop和continue,结果为零。
我在大学测验中被问过这个问题:
如果我有:
int n = 3;
for (int i = 1; i <= n; i++) {
System.out.print(" x ");
for (int j = 1; j <= n; j++) {
System.out.println(" x ");
continue;
//no content here
}
}
在继续声明之后没有任何内容;如何使用continue
影响此循环?是否会导致循环继续迭代的第二个循环中断?
答案 0 :(得分:4)
没有标签的continue
语句将从最里面的while或do或loop循环的条件重新执行,并从更新表达式中重新执行最里面的for循环。它通常用于提前终止循环的处理,从而避免深度嵌套的if语句。
因此,对于您的程序,关键字continue
没有多大意义。它被用作一种逃避的东西。例如:
aLoopName: for (;;) {
// ...
while (someCondition)
// ...
if (otherCondition)
continue aLoopName;
比如说,如果你修改你的程序,如:
int n = 3;
for (int i = 1; i <= n; i++) {
System.out.print(" x ");
for (int j = 1; j <= n; j++) {
if(j%2!=0)
{
System.out.println(" x ");
continue;
}
else
break;
}
这将打破j = 2的内部 for循环。希望你能理解。 :)
答案 1 :(得分:3)
你的问题的答案:
这种使用继续如何影响此循环?是否会导致循环继续迭代的第二个循环中断?
是:
第二个循环不会中断,它将继续迭代。 break
关键字用于打破循环。
修改强>
假设你有for
循环:
for(int i = 0; i < 5; i++){
continue;
}
continue
in for执行for
循环(i++
)的语句以继续下一次迭代。
在其他循环中,while{}
或do{}while();
事情将不会像这样,并可能导致无限循环。
答案 2 :(得分:3)
如果continue
下有代码,那么它将是死代码(无法访问代码)。
你写它的方式,它没有任何效果,因为它已经是最后一行了。如果没有continue;
,那么循环将继续。
这两个代码块具有相同的效果:
for(int i = 0; i < 10; i++) {
// .. code ..
}
for(int i = 0; i < 10; i++) {
// .. code ..
continue;
}
但是,以下代码段无法访问代码:
for(int i = 0; i < 10; i++) {
// .. code ..
continue;
// .. unreachable code ..
}