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

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


当前回答

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

让我们来看一个例子:

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

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

Continue有点像goto。你熟悉break吗?我们可以比较容易地对比一下:

Break终止循环(跳转到它下面的代码)。 Continue终止当前迭代循环中代码的其余处理,但继续循环。

如果你把循环体看作子程序,continue就有点像return。同样的关键字在C中也存在,而且用途相同。这里有一个人为的例子:

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

这将只打印奇数。

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

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

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

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