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文の内部にある場合である。