在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。一组被重复执行的语句称之为循环体,能否继续重复,决定循环的终止条件。循环结构是在一定条件下反复执行某段程序的流程结构,被反复执行的程序被称为循环体。 [1] 循环语句是由循环体及循环的终止条件两部分组成的。
1
for循环语句的基本语法
for(表达式1;表达式2;表达式3)
{
循环体;
}
语义:
1.执行表达式1
2.判断表达式2是否成立,如果成立,则跳转到3,否则跳转到5;
3.执行循环体,执行完毕,跳转到4;
4.执行表达式3,执行完毕,跳转到2;
5.跳出循环,循环结束。
注意表达式1,2,3都可以不写,但是表达式2不写会陷入死循环。
表达式1,3可以同时写多个语句,语句与语句要用逗号隔开。
2
while语句
while循环语句的基本语法:
while(表达式)
{
循环体;
}
语义:
判断表达式是否成立,如果成立,则执行循环体语句,否则跳过循环体语句;
3
do while循环语句的基本语法
do{
循环体;
}while(表达式);
语义:
1.执行循环体
2.判断表达式是否成立,如果成立,则跳转到1,否则跳转到3;
3.跳出循环,循环结束。
所以do…while循环中,循环体至少会被执行1次。
例如求从键盘输入一个大于1数,求1到该数的整数和,
1
for 循环实例,
#include<stdio.h>
int main()
{
int a, b, c=0;
printf(“请输入一个整数\n”);
scanf("%d",&a);
if(a>=1)
{
for (b = 0; b <=a ; b++)
{
c=c+b;
}
printf("%d",c);
}
else
printf(“请输入大于0的数”);
getchar();
getchar();
return 0;
}
2
while实例
#include<stdio.h>
int main()
{
int a, b=1, c=0;
printf(“请输入一个整数\n”);
scanf("%d",&a);
if(a>=1)
{
while(b<=a)
{
c=c+b;
b++;
}
printf("%d",c);
}
else
printf(“请输入大于0的数”);
getchar();
getchar();
return 0;
}
3
do while 实例.
#include<stdio.h>
int main()
{
int a, b=1, c=0;
printf(“请输入一个整数\n”);
scanf("%d",&a);
if(a>=1)
{
do{
c=c+b;
b++;
}while(b<=a);
printf("%d",c);
}
else
printf(“请输入大于0的数”);
getchar();
getchar();
return 0;
}
区别
三种循环结构均可实现相应的功能,按照实际需要选择更为简便的形式。以下为使用场景的总结:
for循环适合针对一个范围判断进行操作,即已知循环次数。while循环适合判断次数不明确的操作,切循环结束后依旧可以使用。
for、while循环都必须先判断条件是否成立,然后决定是否执行循环体。
do...while循环比较特殊,它先执行循环体,然后根据判断条件决定是否再次执行循环,即do...while至少执行一次循环。