for文内のif文のネストをcontinueで回避
C系の文法の言語で、for文の内部の処理でif文が
ずらずらとネストされているケースを回避する方法として
if文の否定条件だったらcontinueするという方法がある。
例)ネストしまくりのif文 for (int i = 0; i < length; i++) { if (condition1) { if (condition2) { if (condition3) { if (condition4) { 何らかの処理 : : : } } } } }
これを以下のように修正します。
例)ネストしまくりのif文(修正版) for (int i = 0; i < length; i++) { if (!condition1) continue; if (!condition2) continue; if (!condition3) continue; if (!condition4) continue; 何らかの処理 : : : }
この方がすっきりしていて見やすい。
ただし、for文の内部の処理がif文ネストの外にも
あった場合はこのテクニックは使えないので注意が必要。
例)if文ネストの外にも処理がある場合 for (int i = 0; i < length; i++) { if (condition1) { if (condition2) { if (condition3) { if (condition4) { 何らかの処理1 : : : } } } } 何らかの処理2 : : : }
こういう場合は使えない。
continueで回避できるのは、if文でネストされた処理のみが
for文の内部にある場合である。