第六章、循环控制
一、goto语句以及用goto语句构成循环
1.goto语句为无条件转向语句,他的一般形式为------goto 语句标识符;
一般来说,goto语句有两种用途:
(1)与if语句一起构成循环结构。
(2)从循环体中跳转到循环体外,但在C语言中可以用break语句和continue语句跳出本层循环和结束本次循环。goto语句的使用机会已大大减少,只是需要从多层循环的内层循环跳到外层循环外时才用到goto语句。但是这种用法不符合结构化原则,一般不宜采用,只有在不得已时(例如能大大提高效率)才使用。
二、while语句循环(循环体可能一次不执行)
1.循环语句的三要素
int main(void)
{
int sum = 0;
int i;
i = 1; ——————————————(1)循环变量初始化:
while(i <= 100) ——————————(2)循环的执行条件
{
sum += i;
++i; ——————————————(3)又使循环趋于结束的语句
}
printf("%d\n", sum);
return 0;
}
- do...while循环(循环体至少执行一次)
int main(void)
{
int sum = 0;
int i;
i = 1;
do
{
sum += i;
++i;
}while(i <= 100);————————后面的分号不能少。
printf("%d\n", sum);
return 0;
}
- for语句循环
for语句的一般形式为
for(表达式1;表达式2;表达式3)语句
表达式1--循环变量初始化 表达式2--循环条件 表达式3--使趋于循环结束的条件
它的执行过程如下:
(1)先求解表达式1。
(2)求解表达式2,若其值为真(值为非0),则执行for语句中指定的内嵌语句,然后
执行下面第(3)步。若为假(值为0),则结束循环,转到第(5)步。
(3)求解表达式3。
(4)转回上面第(2)步骤继续执行。
(5)循环结束,执行for语句下面的一个语句。
int main(void)
int sum = 0;
{
int i;
i = 1;
for(i = 1;i <= 100;++i)
{
sum += i;
}
printf("%d\n", sum)
return 0;
}
- 循环的嵌套(内层循环比外层循环运行的更快)一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。内嵌的循环中还可以嵌套循环,这就是多层循环。3种循环(while循环、do…while循环和for循环)可以互相嵌套。
- 几个循环的比较:用while和do…while循环时,循环变量初始化的操作应在while和do…while语句之前完成。而for语句可以在表达式1中实现循环变量的初始化。while循环、do…while循环和for循环,可以用break语句跳出循环,用continue语句结束本次循环。而对用goto语句和if语句构成的循环,不能用break语句和continue语句进行控制。
- break语句和continue语句
1.break语句可以终止当前循环。(对于for循环在跳出循环后不会执行表达式三)
循环的控制语句有下列两种:
break语句也可以用来跳出循环体。continue语句也会终止当前循环,和break语句不同的是,continue语句终止当前循环后又回到循环体的开头准备执行下一次循环。
对于while循环和do/while循环,执行continue语句之后测试控制表达式,如果值为真则继续执行下一次循环;
对于for循环,执行continue语句之后首先计算控制表达式3,然后测试控制表达式2,如果值为真则继续执行下一次循环。