while语句

一:语句格式格式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;
}