【问题标题】:How to skip a iteration/loop in while-loop [duplicate]如何在while循环中跳过迭代/循环[重复]
【发布时间】:2013-01-29 03:29:11
【问题描述】:

有没有一种优雅的方式来跳过 while-loop 中的迭代?

我想做的是

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

【问题讨论】:

  • 为什么不使用iff.isDirectory()

标签: java


【解决方案1】:

continue

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 你需要||而不是&&
    • 您的逻辑反转不正确,您应该使用 OR 而不是 AND
    • 糟糕,好人,现在将修改它。
    【解决方案3】:

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

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

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

    【讨论】:

      【解决方案4】:

      您正在寻找continue; 声明。

      【讨论】:

        【解决方案5】:

        你不需要跳过迭代,因为其余的都在else语句中,只有条件不成立才会执行。

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

        【讨论】:

          【解决方案6】:
          while (rs.next())
          {
            if (f.exists() && !f.isDirectory())
              continue;
          
            //proceed
          }
          

          【讨论】:

            猜你喜欢
            • 2014-10-30
            • 1970-01-01
            • 1970-01-01
            • 2021-09-06
            • 2016-10-22
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多