三.while语句
1.语法格式:
while(表达式)
循环体语句
说明:
(1) 括号内的表达式为循环条件,一般是关系表达式或者是逻辑表达式,只有表达式的值为非0即可继续循环;
(2)执行while语句时,首先计算表达式的值,如果该值为非0,执行循环体语句。执行完一次循环体语句后,再判断表达式的值是否为非0,循环往复执行这一流程,直到该表达式为0,结束while语句,执行后面的语句;
(3)循环体语句只能有一条语句,如果有一条以上的语句要循环执行,则用“{}”把这些语句括起来,构成一条复合语句。
2.执行流程:
(1)计算表达式的值,如果表达式的值为非零,即为“真”,执行(2),否则执行(3);
(2)执行循环体语句,然后返回(1);
(3)退出循环,执行循环后面的语句。
while语句的控制流程图如下:
例如用while语句计算s=1+2+3+...+99+100。
四.do-while语句
1.语法格式:
do
语句
while(表达式);
2.执行流程:
(1)执行循环体语句;
(2)计算表达式的值,如果表达式的值为非0,则返回执行(1),否则,执行(3);
(3)退出do-while循环结构,执行后面的语句。
do-while语句的控制流程图如下:
例如用do-while语句计算s=1+2+3+...+99+100。
3.while和do-while语句的比较:
(1)while语句中条件控制表达式后面没有分号,而do-while语句的条件控制表达式后面必须带分号。
(2)do-while循环是先执行循环体语句,再判断条件控制表达式是否为非0,如果为0,则停止循环,否则继续循环;而while循环是先判断条件控制表达式是否为非0,如果为0,则不执行循环体语句,直接执行while语句后面的语句。因此,do-while循环至少执行一次循环体语句。
五.for语句
1.语法格式:
for(表达式1;表达式2;表达式3)
循环体语句
2.执行流程:
(1)先计算表达式1;
(2)计算表达式2,若值为非0,则执行循环体语句,然后转到(3);若值为0,则退出循环,转到(5);
(3)计算表达式3;
(4)转回(2)继续执行;
(5)循环结束,执行for语句后面的语句。
for语句的控制流程图如下:
例如用for语句计算s=1+2+3...+99+100。
六.流程转向语句
循环结构是通过循环条件来控制循环语句执行的,但有时不需要执行完整个循环,而是要提前结束,或者跳过某些语句,这时就需要使用转向语句。转向语句是可以改变程序的结构,使程序从所在位置转向另一处的语句。转向语句分为三种:break语句、continue语句和goto语句。
1.break语句
一般形式:break;
功能:break语句可以用来从循环体内跳出循环体,提前结束循环,然后执行循环语句后面的语句。
注意:break语句只能在循环语句和switch语句中使用。
循环嵌套时,break只能跳出它所在的内循环,与外循环无关。
例如:
当i=5时,满足if语句的判断表达式,执行if内的语句,即执行break语句,执行break语句后,跳出for循环,执行后面的语句。因此只打印1 2 3 4。
2.continue语句
应用形式:if(表达式)continue;
功能:结束本次循环,即跳出循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。
例如:
当i=5时,满足if语句的判断表达式,执行if内的语句,即执行continue语句,不执行本次的printf,继续执行后面的循环。因此,不打印数字5。
3.goto语句
一般格式:goto 语句标号;
功能:跳转到指定标号的下一条语句,然后从那条语句开始往下执行。
例如用goto语句和if语句构成循环求1+2+3+...+99+100的值。
在Ioop:if(i<=100)处设置语句标号,if语句内设置goto Ioop。则每当执行完goto语句后,跳到Ioo: if(i<=100)这里,就使用了goto语句和if语句构成循环。
分支和循环大概就有上述这些,希望能帮助到您。