c++继续与中断

c++ continue versus break

本文关键字:中断 继续 c++      更新时间:2023-10-16

在"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                                                                                                                                                                                                                           
 }

continue:++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                                                                                                                                                                                                                           
 }
如果循环不在上一次迭代中,

语句2将在continue之后执行。

语句3将在中断后执行。

"continue"(顾名思义)继续循环,同时跳过当前迭代中的其余语句。

"break"中断并退出循环。

Continue:这取决于。continue语句将执行for循环的"increment"部分,然后执行"test"部分,并决定是执行下一次迭代还是退出循环。所以它可以是语句2或3。

Break:语句3。

顺便说一句,这是家庭作业吗?

  1. 为了继续,使用i,j+1 的新i,j值执行内循环

  2. 对于中断,使用i+1,0 的新i,j值执行内循环

当然,如果边界条件满足