我第一次看到这个关键字,我想知道是否有人可以向我解释它是做什么的。

continue关键字是什么? 它是如何工作的? 什么时候使用?


当前回答

通常,我将continue(和break)视为代码可能使用某些重构的警告,特别是在while或for循环声明没有立即出现的情况下。方法中间的return也是如此,但原因略有不同。

正如其他人已经说过的那样,continue会移动到循环的下一个迭代,而break则会移出封闭的循环。

这些可以是维护定时炸弹,因为除了上下文之外,在继续/中断和它继续/中断的循环之间没有直接的联系;添加一个内部循环或将循环的“内脏”移动到一个单独的方法中,就会出现continue/break失败的隐藏效果。

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

continue, break和return(除了方法末尾的一个True return)都属于“隐藏goto”的一般类别。他们把循环和函数控制放在意想不到的地方,最终导致bug。

其他回答

"continue"在Java中的意思是走到当前循环的结束, 意味着:如果编译器在一个循环中看到continue,它将进入下一个迭代

示例:这是一个输出从1到10的奇数的代码

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

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

通常,我将continue(和break)视为代码可能使用某些重构的警告,特别是在while或for循环声明没有立即出现的情况下。方法中间的return也是如此,但原因略有不同。

正如其他人已经说过的那样,continue会移动到循环的下一个迭代,而break则会移出封闭的循环。

这些可以是维护定时炸弹,因为除了上下文之外,在继续/中断和它继续/中断的循环之间没有直接的联系;添加一个内部循环或将循环的“内脏”移动到一个单独的方法中,就会出现continue/break失败的隐藏效果。

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

continue, break和return(除了方法末尾的一个True return)都属于“隐藏goto”的一般类别。他们把循环和函数控制放在意想不到的地方,最终导致bug。

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 .跳过]

如果你把循环体看作子程序,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 (...)
    ;