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

を使用することもできますが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 に答える