@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、元のループが混乱している場合は考えやすいかもしれません。