while循环
while循环格式
while(expression)
statement //可以是以分号结尾的简单语句,也可以是花括号括起来的复合语句
语法要点
使用while循环,牢记:只有在测试条件后面的单独语句才是循环部分
示例:
#include<stdio.h>
int main()
{
int n=0;
while(n<3)
printf("n is %d\n",n);
n++;
printf("that\'s all this program does\n");
}
- 循环会无限循环下去,虽然有n++这条语句,但是由于没有花括号括起来,属于循环语句的只有第一条printf语句,n++不属于循环语句,所以没有跳出循环的语句。
for循环
#include<stdio.h>
int mian()
{
const int NUMBER=22;
int count;
for(count=1;count<=NUMBER;count++)
printf("be my valentine\n");
return 0;
}
- 关键字for后面有3个表达式,分别用分号隔开
- 第一个表达式是初始化,只会在for循环开始时执行一次
- 第二个表达式时测试条件,在执行循环之前对表达式求值,为假时循环结束
- 第三个表达式执行更新,在每次循环结束时求值
- for圆括号中的表达式也叫控制表达式,都是完整表达式,每个表达式的副作用(如:递增变量)都在对下一个表达式求值之前
- for循环执行流程
for循环的其他用法
- 第三个表达式可以使用任意合法的表达式
#include<stdio.h>
int main()
{
int x;
int y=55;
for(x=1;y<75;y=(++x*5)+50)
printf("%d %10d\n",x,y);
return 0;
}
- 可以省略一个或多个表达式,但是不能省略分号,只要在循环中包含能结束循环的语句即可
#include<stdio.h>
int main()
{
int i,n;
i=2;
for(n=3;i<=25;)
i*=n;
printf("n=%d,i=%d\n",n,i);
return 0;
}
- 第一个表达式不一定是给变量赋值,也可以使用printf()。在执行循环的其他部分之前,只对第一个表达式求值一次或执行一次。
#include<stdio.h>
int main()
{
int n=0;
for(printf("keep entering numbers\n");n!=6;)
scanf("%d",&n);
return 0;
}
do while 出口条件循环
- while和for循环都是入口循环:在循环的每次迭代之前检查测试条件
- 出口循环:在循环的每次迭代之后检查测试条件,这保证了至少执行一次循环体中的内容
do while循环格式
do
stasement //可以是一条简单语句或复合语句
while(experssion);
- do while循环以分号结尾
示例:
#include<stdio.h>
int main()
{
const int a=13;
int b;
do{
printf("两个数不想等时退出循环\n");
printf("请输入一个整数:");
scanf("%d",&b);
}while(b!=a);
printf("you are cured!\n");
return 0;
}