论break与continue的区别——改变循环的执行状态
什么是break
break英文有打断、打破的意思。它的作用是使流程跳到循环体之外,接着执行下面的语句,break语句只能用于switch语句和循环语句之中,不能单独使用。
什么是continue?*
continue英文有继续的意思。continue语句的作用是结束本次循环,即跳过循环体中下面未执行的语句,转到循环体结束点之前,接着执行for语句中的表达式3,然后接着往下进行。
for (a = 1, b = 1; a <= 100; a++) //这里的a++就是表达式3
break和continue的区别是什么?
只是文字可能晕晕乎乎不太清楚,所以来看看具体的代码叭。
int a = 0, b = 0;
for (a = 1, b = 1; a <= 100; a++)
{
if (b >= 20) break;
if (b % 3 == 1)
{
b = b + 3;
continue;
}
b = b-5;//continue是跳到for循环花括号之前,只是不执行本次循环的后面的语句,接着执行a++
}//break将跳出for循环到花括号外,进行下面的打印
printf("%d\n", a);
第一次循环:a = 1,b=1—>b小于20,if不成立,b%3—>1%3—>1成立,b=b+3, 此时b的值为4
第二次循环:a = 2,b=4—>b小于20,if不成立,b%3—>4%3—>1成立,b=b+3, 此时b的值为7
第三次循环:a = 3,b=7—>b小于20,if不成立,b%3—>7%3—>1成立,b=b+3, 此时b的值为10
第四次循环:a = 4,b=10—>b小于20,if不成立,b%3—>10%3—>1成立,b=b+3, 此时b的值为13
第五次循环:a = 5,b=13—>b小于20,if不成立,b%3—>13%3—>1成立,b=b+3, 此时b的值为16
第六次循环:a = 6,b=16—>b小于20,if不成立,b%3—>16%3—>1成立,b=b+3, 此时b的值为19
第七次循环:a = 7,b=19—>b小于20,if不成立,b%3—>19%3—>1成立,b=b+3, 此时b的值为22
第八次循环:a = 8,b=22—>b大于20,if成立,break跳出循环
最后打印a:8