break和continue的区别(流程图表示)

for循环可以理解为 for(变量初始化; 循环判断 ; 循环变量自增)

例如for(i=1; i<=100 ;i++),其中i=1是变量初始化,i<=100是循环判断,i++是循环变量自增

只执行一次变量初始化,

然后循环判断,执行循环体,循环变量自增。

再次循环判断,执行循环体,循环变量自增

(一直循环下去。。。。。。)

循环过程可以看下图的红色箭头。(语句1+语句2是循环体)


break和continue的区别(流程图表示)

从图中可以看到,如果循环中,在语句1之后,执行continue; 将会跳过语句2,直接到循环变量自增,进行下一次循环判断。

而如果循环中,在语句1之后,执行break;将会退出循环

图中的循环体是语句1和语句2,举个具体的例子来说明break; continue;对循环的影响

int i,a=0,b=0;

for(i=1;i<=10;i++)

{

        a++;

        if(i%2==0) continue;

        if(i==5) break;

        b++;

}

来执行一遍循环过程

i=1;  循环判断i<=10成立  a++;(此时a=1)   i%2!=0(不执行continue;)  i!=5(不执行break)   b++;(此时b=1)   i++;

i=2;  循环判断i<=10成立  a++;(此时a=2)   i%2==0(执行continue; 跳过break判断和b++; 直接到i++;)

i=3;  循环判断i<=10成立  a++;(此时a=3)   i%2!=0(不执行continue;)  i!=5(不执行break)   b++;(此时b=2)   i++;

i=4;  循环判断i<=10成立  a++;(此时a=4)   i%2==0(执行continue; 跳过break判断和b++; 直接到i++;)

i=5;  循环判断i<=10成立  a++;(此时a=5)   i%2!=0(不执行continue;)  i==5(执行break,退出循环)

退出循环后 i=5, a=5,b=2