Answers:
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中的等效项是next
。
不建议使用这种类型的控制流,但是如果您选择这样做,也可以continue
用来模拟的有限形式goto
。在下面的示例中,continue
将重新执行空for (;;)
循环。
aLoopName: for (;;) {
// ...
while (someCondition)
// ...
if (otherCondition)
continue aLoopName;
通常,我将continue
(和break
)作为警告,指出代码可能会使用某些重构,尤其是在while
or for
循环声明没有立即出现的情况下。return
在方法中间也是如此,但原因稍有不同。
正如其他人已经说过的那样,continue
移至循环的下一个迭代,同时break
移出封闭的循环。
这些可能是维护定时炸弹,因为continue
/ break
与其正在继续/中断的循环之间没有上下文之间的直接链接;添加一个内部循环或将循环的“要点”移到一个单独的方法中,您将隐藏continue
/ break
失败的效果。
恕我直言,最好将它们用作最后的手段,然后确保在循环的开始或结尾将它们的使用紧密地分组在一起,以便下一个开发人员可以在一个屏幕上看到循环的“界限” 。
continue
,break
和return
(除了方法结尾处的“一个真实的回报”以外)都属于“隐藏的GOTO”的常规类别。他们将循环和功能控制放在意想不到的地方,然后最终导致错误。
如前所述,continue
将跳过对它下面的代码的处理,直到循环结束。然后,将您移至循环的条件,如果该条件仍然成立(或如果存在标志,则为指定的循环的条件),则运行下一个迭代。
必须强调的是,如果do - while
您将移动到条件的底部continue
,而不是循环的开始。
这就是为什么许多人无法正确回答以下代码将生成什么的原因。
Random r = new Random();
Set<Integer> aSet= new HashSet<Integer>();
int anInt;
do {
anInt = r.nextInt(10);
if (anInt % 2 == 0)
continue;
System.out.println(anInt);
} while (aSet.add(anInt));
System.out.println(aSet);
*如果您的答案是aSet
仅包含100%的奇数...您错了!
Continue是Java中的关键字,用于跳过当前迭代。
假设您要打印从1到100的所有奇数
public class Main {
public static void main(String args[]) {
//Program to print all odd numbers from 1 to 100
for(int i=1 ; i<=100 ; i++) {
if(i % 2 == 0) {
continue;
}
System.out.println(i);
}
}
}
上面程序中的continue语句仅在i为偶数时跳过迭代,而在i为奇数时打印i的值。
Continue语句仅使您退出循环,而无需在循环内执行其余语句,并触发下一次迭代。
考虑是否为其他条件。Continue语句执行条件中的内容,然后退出条件,即跳转到下一个迭代或条件。但是,休息就离开了循环。考虑以下程序。'
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。
如果使用break代替continue(if。之后),它将仅打印aa并退出循环。
如果满足条件“ bb”等于ss:继续:转到下一个迭代,即“ cc” .equals(ss)。中断:它退出循环并显示“ Out of the loop”。
break
我参加聚会有点晚了,但是...
值得一提的continue
是,这对于空循环非常有用,在空循环中,所有工作都在控制循环的条件表达式中完成。例如:
while ((buffer[i++] = readChar()) >= 0)
continue;
在这种情况下,读取字符并将其附加到字符的所有工作buffer
都是在控制while
循环的表达式中完成的。该continue
语句充当循环不需要主体的视觉指示。
它比同等的东西更明显:
while (...)
{ }
绝对比使用像下面这样的空语句更好(更安全)的编码风格:
while (...)
;
while
该while
子句的正文成为下一个语句,并且在视觉上不明显。显式continue
是显而易见的,它传达了一个空语句不包含的意图。
基本上在Java中,continue是一条语句。因此,continue语句通常与循环一起使用,以跳过当前迭代。
有关如何在Java中使用它以及何时使用它,请参考下面的链接。有实例说明。
https://www.flowerbrackets.com/continue-java-example/
希望能帮助到你 !!
continue
必须在循环内,否则将显示以下错误:
在循环外继续
当您需要立即跳转到循环的下一个迭代时,在循环控制结构中使用continue语句。
它可以与for循环或while循环一起使用。Java continue语句用于继续循环。它继续程序的当前流程,并在指定条件下跳过其余代码。
如果是内部循环,则仅继续内部循环。
我们可以在所有类型的循环中使用Java Continue语句,例如for循环,while循环和do-while循环。
例如
class Example{
public static void main(String args[]){
System.out.println("Start");
for(int i=0; i<10; i++){
if(i==5){continue;}
System.out.println("i : "+i);
}
System.out.println("End.");
}
}
输出:
Start
i : 0
i : 1
i : 2
i : 3
i : 4
i : 6
i : 7
i : 8
i : 9
End.
[数字5被跳过]