web-dev-qa-db-ja.com

c ++続行と中断

「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                                                                                                                                                                                                                           
 }
13
eugene

継続する: ++jそしてj < countそしてstatement2 さもないと statement3

休憩:statement3

22
Petar Ivanov

Continueは、最も内側のループの先頭に直接ジャンプします。ここで、反復ごとのコードと継続性のチェックが実行されます(forループのセクション3と2)。

Breakは、何も変更せずに、最も内側のループの直後にまっすぐジャンプします。

前者が最も内側のループの閉じブレースにジャンプし、後者がそのすぐ先にジャンプすることを考える方が簡単かもしれません。

21
jpm

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                                                                                                                                                                                                                           
 }
10
user610650

Continue:状況によります。 continueステートメントは、forループの「increment」部分を実行し、次に「test」部分を実行してから、次の反復を実行するか、ループを終了するかを決定します。したがって、ステートメント2または3である可能性があります。

Break:ステートメント3。

ところで、これは宿題ですか?

2
Patrick

ループが最後の反復になかった場合、statement2は続行後に実行されます。

statement3は、ブレーク後に実行されます。

'continue'(名前が示すように)は、現在の反復の残りのステートメントをスキップしながら、ループを続行します。

「break」は中断し、ループを終了します。

2
sparkymat