「continue」または「break」の後に実行されるステートメントはどれですか?
for(int i = 0; i < count; ++i)
{
// statement1
for(int j = 0; j < count; ++j)
{
//statement2
if(someTest)
continue;
}
//statement3
}
for(int i = 0; i < count; ++i)
{
// statement1
for(int j = 0; j < count; ++j)
{
//statement2
if(someTest)
break;
}
//statement3
}
継続する: ++j
そしてj < count
そしてstatement2
さもないと statement3
休憩:statement3
Continueは、最も内側のループの先頭に直接ジャンプします。ここで、反復ごとのコードと継続性のチェックが実行されます(for
ループのセクション3と2)。
Breakは、何も変更せずに、最も内側のループの直後にまっすぐジャンプします。
前者が最も内側のループの閉じブレースにジャンプし、後者がそのすぐ先にジャンプすることを考える方が簡単かもしれません。
continue
は現在の反復を終了します。事実上、次と同じです。
for(int i = 0; i < count; ++i)
{
// statement1
for(int j = 0; j < count; ++j)
{
//statement2
if(someTest)
goto end_of_loop;
end_of_loop:
}
//statement3
}
break
はループを終了します:
for(int i = 0; i < count; ++i)
{
// statement1
for(int j = 0; j < count; ++j)
{
//statement2
if(someTest)
goto after_loop;
}
after_loop:
//statement3
}
Continue
:状況によります。 continueステートメントは、forループの「increment」部分を実行し、次に「test」部分を実行してから、次の反復を実行するか、ループを終了するかを決定します。したがって、ステートメント2または3である可能性があります。
Break
:ステートメント3。
ところで、これは宿題ですか?
ループが最後の反復になかった場合、statement2は続行後に実行されます。
statement3は、ブレーク後に実行されます。
'continue'(名前が示すように)は、現在の反復の残りのステートメントをスキップしながら、ループを続行します。
「break」は中断し、ループを終了します。