@LightnessRacesinOrbit と @basilikum からの優れた回答に追加するために、for
このような異常なループを見るときに役立つヒントを次に示します。より原始的な形式に分解します。
任意のfor
ループ:
for( initialize; condition; advance ) {
// loop body here
}
同等のwhile
ループに変換できます。
initialize;
while( condition ) {
// loop body here
advance;
}
だからあなたが見つけたループ:
for ( i = 0, j = nvert-1; i < nvert; j = i++ ) {
// loop body here
}
書くことができます:
i = 0, j = nvert - 1;
while( i < nvert ) {
// loop body here
j = i++;
}
これで、それをさらに単純なステップに分解できます。
@basilikum が指摘したように、最初の行は次のとおりです。
i = 0, j = nvert - 1;
以下と同じです:
i = 0;
j = nvert - 1;
そしてループの最後の行:
j = i++;
以下と同じです:
j = i;
i = i + 1;
これらをコードに戻すと、次のようになります。
i = 0;
j = nvert - 1;
while( i < nvert ) {
// loop body here
j = i;
i = i + 1;
}
これは元のループよりも冗長ですがfor
、元のループが混乱している場合は考えやすいかもしれません。