我第一次看到这个关键字,我想知道是否有人可以向我解释它是做什么的。
continue关键字是什么? 它是如何工作的? 什么时候使用?
我第一次看到这个关键字,我想知道是否有人可以向我解释它是做什么的。
continue关键字是什么? 它是如何工作的? 什么时候使用?
当前回答
考虑一个If Else条件。continue语句执行条件中的内容,并跳出条件,即跳转到下一个迭代或条件。但是Break会离开循环。 考虑下面的程序。
public class ContinueBreak {
public static void main(String[] args) {
String[] table={"aa","bb","cc","dd"};
for(String ss:table){
if("bb".equals(ss)){
continue;
}
System.out.println(ss);
if("cc".equals(ss)){
break;
}
}
System.out.println("Out of the loop.");
}
}
它将输出:aa cc Out of the loop。
如果你用break代替了continue(在If .之后),它只会打印aa并退出循环。
如果满足条件"bb" = ss: 对于继续:它进入下一个迭代,即。“cc”.equals (ss)。 Break:它从循环中出来并打印“out of the loop”。
其他回答
不带标签的continue语句将从最里面的while或do循环的条件和最里面的for循环的更新表达式重新执行。它通常用于提前终止循环的处理,从而避免深度嵌套的if语句。在下面的例子中,continue将获取下一行,而不处理循环中的下面语句。
while (getNext(line)) {
if (line.isEmpty() || line.isComment())
continue;
// More code here
}
使用标签,continue将从带有相应标签的循环中重新执行,而不是从最内层的循环中执行。这可以用来转义嵌套很深的循环,或者只是为了清晰。
有时,continue也被用作占位符,以使空循环体更清晰。
for (count = 0; foo.moreData(); count++)
continue;
在C和c++中也存在相同的没有标签的语句。接下来是Perl中的等效程序。
这种类型的控制流是不推荐的,但是如果你这样选择,你也可以使用继续来模拟有限形式的goto。在下面的例子中,continue将重新执行空的for(;;)循环。
aLoopName: for (;;) {
// ...
while (someCondition)
// ...
if (otherCondition)
continue aLoopName;
如果你把循环体看作子程序,continue就有点像return。同样的关键字在C中也存在,而且用途相同。这里有一个人为的例子:
for(int i=0; i < 10; ++i) {
if (i % 2 == 0) {
continue;
}
System.out.println(i);
}
这将只打印奇数。
我来晚了一点,但是…
值得一提的是,continue对于空循环非常有用,其中所有的工作都在控制循环的条件表达式中完成。例如:
while ((buffer[i++] = readChar()) >= 0)
continue;
在这种情况下,读取字符并将其追加到缓冲区的所有工作都在控制while循环的表达式中完成。continue语句可以直观地指示循环不需要正文。
它比同等的东西更明显一点:
while (...)
{ }
这绝对比使用空语句更好(也更安全)的编码风格:
while (...)
;
考虑一个If Else条件。continue语句执行条件中的内容,并跳出条件,即跳转到下一个迭代或条件。但是Break会离开循环。 考虑下面的程序。
public class ContinueBreak {
public static void main(String[] args) {
String[] table={"aa","bb","cc","dd"};
for(String ss:table){
if("bb".equals(ss)){
continue;
}
System.out.println(ss);
if("cc".equals(ss)){
break;
}
}
System.out.println("Out of the loop.");
}
}
它将输出:aa cc Out of the loop。
如果你用break代替了continue(在If .之后),它只会打印aa并退出循环。
如果满足条件"bb" = ss: 对于继续:它进入下一个迭代,即。“cc”.equals (ss)。 Break:它从循环中出来并打印“out of the loop”。
Continue有点像goto。你熟悉break吗?我们可以比较容易地对比一下:
Break终止循环(跳转到它下面的代码)。 Continue终止当前迭代循环中代码的其余处理,但继续循环。