当前位置:  开发笔记 > 编程语言 > 正文

什么是"continue"关键字以及它如何在Java中运行?

如何解决《什么是"continue"关键字以及它如何在Java中运行?》经验,为你挑选了6个好方法。

我第一次看到这个关键字,我想知道是否有人可以向我解释它的作用.

什么是continue关键字?

它是如何工作的?

什么时候使用?

Dustin.. 503

continue有点像goto.你熟悉break吗?相比之下,更容易思考它们:

break 终止循环(跳转到它下面的代码).

continue 在当前迭代的循环中终止代码处理的其余部分,但继续循环.


Diomidis Spi.. 410

continue没有标签的语句将从最内层whiledo循环的条件以及最内层循环的更新表达式重新执行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;


Gant.. 99

我们来看一个例子:

int sum = 0;
for(int i = 1; i <= 100 ; i++){
    if(i % 2 == 0)
         continue;
    sum += i;
}

这将得到从1到100的奇数之和.



1> Dustin..:

continue有点像goto.你熟悉break吗?相比之下,更容易思考它们:

break 终止循环(跳转到它下面的代码).

continue 在当前迭代的循环中终止代码处理的其余部分,但继续循环.



2> Diomidis Spi..:

continue没有标签的语句将从最内层whiledo循环的条件以及最内层循环的更新表达式重新执行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;



3> Gant..:

我们来看一个例子:

int sum = 0;
for(int i = 1; i <= 100 ; i++){
    if(i % 2 == 0)
         continue;
    sum += i;
}

这将得到从1到100的奇数之和.



4> Vineet..:

如果你认为循环体是一个子程序,continue就有点像return.C中存在相同的关键字,并且用于相同的目的.这是一个人为的例子:

for(int i=0; i < 10; ++i) {
  if (i % 2 == 0) {
    continue;
  }
  System.out.println(i);
}

这将只打印出奇数.



5> Tom Dibble..:

通常,我看到continue(和break)警告代码可能会使用一些重构,特别是如果whileor for循环声明没有立即显示.return在方法的中间也是如此,但原因略有不同.

正如其他人已经说过的那样,continue移动到循环的下一次迭代,同时break移出封闭循环.

这些可以是维护时间炸弹,因为在continue/ break和循环之间没有直接链接它继续/打破除了上下文之外; 添加一个内循环或将循环的"内脏"移动到一个单独的方法中,你有continue/ break失败的隐藏效果.

恕我直言,最好使用它们作为最后的手段,然后确保它们的使用在循环的开始或结束时紧密组合在一起,以便下一个开发人员可以在一个屏幕中看到循环的"边界" .

continue,breakreturn(除了方法结束时的One True Return)都属于"隐藏GOTO"的一般类别.它们将循环和函数控制置于意外的位置,最终导致错误.



6> 小智..:

Java中的“继续”表示转到当前循环的末尾,表示:如果编译器看到循环中的继续,它将进入下一个迭代

示例:这是用于打印从1到10的奇数的代码

只要看到继续进入下一个迭代,编译器将忽略打印代码

for (int i = 0; i < 10; i++) { 
    if (i%2 == 0) continue;    
    System.out.println(i+"");
}

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有