break和continue的区别(流程图表示)
for循环可以理解为 for(变量初始化; 循环判断 ; 循环变量自增)
例如for(i=1; i<=100 ;i++),其中i=1是变量初始化,i<=100是循环判断,i++是循环变量自增
只执行一次变量初始化,
然后循环判断,执行循环体,循环变量自增。
再次循环判断,执行循环体,循环变量自增
(一直循环下去。。。。。。)
循环过程可以看下图的红色箭头。(语句1+语句2是循环体)
从图中可以看到,如果循环中,在语句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