为了账号安全,请及时绑定邮箱和手机立即绑定

什么是“继续”关键字,它在Java中是如何工作的?

什么是“继续”关键字,它在Java中是如何工作的?

BIG阳 2019-07-05 13:06:04
什么是“继续”关键字,它在Java中是如何工作的?我第一次看到了这个关键字,我想知道是否有人能向我解释它的功能。什么是continue关键词?它怎麽工作?什么时候用的?
查看完整描述

3 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

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;


查看完整回答
反对 回复 2019-07-05
?
慕容森

TA贡献1853条经验 获得超18个赞

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

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

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


查看完整回答
反对 回复 2019-07-05
?
婷婷同学_

TA贡献1844条经验 获得超8个赞

一般来说,我知道continue(和break)作为警告,代码强权使用一些重构,特别是如果whilefor循环声明没有立即出现。同样的道理也适用于return在一个方法的中间,但是出于一个稍微不同的原因。

就像其他人已经说过的,continue移动到循环的下一次迭代,同时break从包围环中移出。

这些可以是维护定时炸弹,因为在continue/break并且它正在继续/破坏上下文以外的循环;添加一个内环或将循环的“内部”移动到一个单独的方法中,您就会有一个隐藏的效果。continue/break失败了。

IMHO,最好使用它们作为最后的手段,然后确保在循环的开始或结束时将它们紧密地组合在一起,以便下一个开发人员能够在一个屏幕中看到循环的“边界”。

continuebreak,和return(除了方法结束时的唯一真实返回),所有这些都属于“隐藏Gotos”的一般范畴。它们将循环和函数控制放在意想不到的位置,这最终会导致错误。


查看完整回答
反对 回复 2019-07-05
  • 3 回答
  • 0 关注
  • 354 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信