提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、循环语句分类
- .while语句
最简单的循环语句,格式为:
while(表达式)
语句;(注意:表达式可以是任何类型语句,仅仅判断此语句是否为0,若非0则执行语句,还要记得初始化循环控制变量。)
例如:
a = scanf("%d",&num);
while (a==1)
{
//循环行为
a = scanf("%d",&num);
}
- do—while语句. 和while语句类似,格式如下
do 语句;
while(表达式);
和while语句的区别在于,先执行do语句然后判断while的循环控制变量,也就是说,此语句至少执行一次,注意不同情况的使用。
另外,如while语句一样,记得初始化循环控制变量。
例如:
#include <stdio.h>
int main()
{
int i = 1;
do
{
printf("%d ",i);
i++;
} while (i <= 10);
return 0;
}
- for语句,比较方便的循环语句,具体格式如下:
for(表达式1,用来赋初值;表达式2,就是循环控制变量;表达式3,改变循环控制变量)
语句;(其实就是循环体)
注意:for后面的括号不能省,但如果赋过初值或循环体有终止语句,改变变量,里面的表达式可以省略,但分号依旧不能省。
例如:
# include <stdio.h>
int main(void)
{
int i;
int sum = 0 ;
for (i=1; i<100; i+=2) //i+=2;等价于i = i + 2;
{
sum = sum + i;
}
printf("sum = %d\n", sum);
return 0;
}
二、终止语句
- return语句
执行时退出循环语句,还要终止return后面语句的运行,将该语句函数值返回,因此一般用于函数返回。 - break语句
检测到break语句时循环体应立即停止循环,跳出循环,执行循环后的第一句语句,emmm例如:
int i,j,k;
for(i= 1;i<= 9;i ++) //循环变量取值范围:i = 1 .. 9
{
for(j = 1;j <= i;j++) //循环变量j的取值范围:j = 1 ..9
{
k = i *j;
printf("%d * %d = %d ",i,j,k);
break;
}
printf("\n);
break;
}
printf("输出");
另外注意:考虑到存在循环嵌套,强调一下break语句只是跳出单次最内层的循环,并不影响外层循环,一定注意注意。
- continue语句
与break语句不同,continue虽然跳出循环体,但是会重新开始下一次循环,即只结束本次循环,并不影响后续循环。
例如:
#include<stdio.h>
int main()
{
int i,n=1;
for(i=1;i<=100;i++)
{
if(i%7!=0)
continue;
printf("%4d",i);
if(n++%5==0)printf("\n");
}
return 0;
}
总结
循环语句的选择也是一个难题,正如不同的语句特点不同,所要使用的位置自然也不同。
比如,存在一次循环也不执行的情况那使用do while语句就会出错,而循环次数由循环控制变量决定的时候,尽量用while或者do while语句更方便一些,反之,for语句更适合能确定循环次数的情况。