一:语句格式格式1:
while(条件表达式)
语句1;说明:语句1是while循环语句的循环体,它将在满足条件的情况下被重复执行。
格式2:
while(条件表达式)
{
语句1;
语句2;
}
说明:while语句是一个典型的当型循环,循环体部分由多个语句组成时,应由一对花括号括起来,构成一个语句块的形式。 程序风格提示:写while循环语句的时候,循环体的语句对于while缩进两格。
二:语句执行过程
(1)计算作为循环控制条件表达式的值,得到逻辑真或假,假定用M表示。
(2)若M为真,则执行一边循环体,否则离开循环体,结束整个while语句的执行。
(3)循环体的所有语句执行结束后,自动转向第(1)步执行。
三:格式例举
(1)
int i=0;
while(i<10) ++i;
//功能:当i的值小于10,重复执行++i语句。
(2)
while(cin>>x,x<0) //相当于cin>>x; while(x<0) cin>>x;
//功能:当输入的数据小于0时,重复读数据。
注:while括号中可以包含多个语句(中间用逗号隔开),但时只判读最后一个语句是否为真,如:while(x>10,x==10,x<10),如果x<10,则继续执行循环,否则推出循环。
例1:
求s=1+2+3+...+n,当加到几的时候,s的值会超过1000?
源代码:
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int n=0,s=0;
while(s<=1000)
{
++n;
s+=n;
}
printf("%d\n",n);
system("pause");
return 0;
}
例2:
输入一些整数,求出它们的最小值,最大值和平均值(保留3位小数)。输入保证这些数都是不超过1000的整数。
输入样例:2 8 3 5 1 7 3 6
输出样例:1 8 4.37
源代码:
#include<iostream>
#include<cstdio>
#define INF 100000000
using namespace std;
int main()
{
int x,n=0,max=-INF,min=INF,s=0;
while(scanf("%d",&x)==1)
{
s+=x;
min=x<min? x:min;
max=x>max? x:max;
++n;
}
printf("%d %d %0.3lf\n",min,max,(double)s/x);
system("pause");
return 0;
}