23

有没有一种优雅的方法可以跳过 while-loop 中的迭代?

我想做的是

  while(rs.next())
  {
    if(f.exists() && !f.isDirectory()){
      //then skip the iteration
     }
     else
     {
     //proceed
     }
  }
4

6 回答 6

59

continue

while(rs.next())
  {
    if(f.exists() && !f.isDirectory())
      continue;  //then skip the iteration
     
     else
     {
     //proceed
     }
  }
于 2013-02-13T14:45:30.810 回答
11

虽然您可以使用 a continue,但为什么不直接反转 if 中的逻辑呢?

while(rs.next())
{
    if(!f.exists() || f.isDirectory()){
    //proceed
    }
}

你甚至不需要,else {continue;}因为如果if条件不满足,它仍然会继续。

于 2013-02-13T14:46:06.790 回答
8

尝试添加 continue;要跳过 1 次迭代的位置。

与 break 关键字不同, continue 不会终止循环。相反,它跳到循环的下一个迭代,并停止执行该迭代中的任何进一步的语句。这允许我们绕过当前序列中的其余语句,而无需停止循环中的下一次迭代。

http://www.javacoffeebreak.com/articles/loopyjava/index.html

于 2013-02-13T14:42:57.297 回答
6

你正在寻找continue;声明。

于 2013-02-13T14:42:39.953 回答
4

您不需要跳过迭代,因为它的其余部分在else语句中,它只会在条件不成立时执行。

但是如果你真的需要跳过它,你可以使用该continue;语句。

于 2013-02-13T14:43:41.933 回答
3
while (rs.next())
{
  if (f.exists() && !f.isDirectory())
    continue;

  //proceed
}
于 2013-02-13T14:45:27.060 回答