while循环

  • 格式:doc
  • 大小:51.83 KB
  • 文档页数:16

下载文档原格式

  / 16
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

while 循环

语法形式:

while(条件)

{

需要循环执行的语句;

}

while 是“当”的意思。

请首先和if语句作一个比较:

if(条件)

{

条件成立时执行的语句;

}

二者除了关键字不一样以外,结构完全一样。但一定要注意,在条件成立时,if语句仅仅执行一遍,而while语句则将反复执行,直到条件不再成立。

请看while循环的流程图:

程序从“前面的语句”开始执行,然后进行条件判断,如果条件成立,则执行一次“每次循环执行

的语句”,再后请特别注意红色部分,这是我们碰上的,第一次会往后走流程:红线就像汽车拐弯,

掉头到条件处(并不包括前面的语句),然后再进行下一次的条件判断……直到某一次判断时条件不

成立了,程序“继续后面的语句”。

我们用while的语法套用生活中的实际例子,可以直观地看出while的用法。

假设有一个爱哭的小娃娃,有一天她要求父母给买一条小红裙,可惜父母不同意,于是她就开始一个循环:

while ( 父母不给买小红裙)

{

我哭;

}

这段“代码”的意思是:当“父母不给买小红裙”,那么,小女孩就一遍一遍地哭。

这就是我们和循环流程的第一个遭遇战。所举的例子看似直观:“小孩一遍遍地哭,直到父母给买裙”,但真正要用程序的语言来正确地表达出来,需要很多方面要考虑到,必竟,程序是严谨的。

首先,一个合适的判断是否继续的条件相当重要。小女孩要继续哭,仅仅“父母不给买小红裙”,这显示不符合事实,想想我们小时候,再会哭,最终也有累的时候,所以,要想继续哭,我们的条件有两个:“父母不给买小红裙”并且“我还没有哭累”。

while ( 父母不给买小红裙&& 我还没有哭累)

{

我哭;

}

其次,大多数情况下,条件需要被恰当地改变。小女孩在不停地哭,那么她如何知道父母是否买了红裙呢?所以,她不能只顾哭,还得在哭的间隙观察大人是否同意买裙。至于是否哭累,我们假设小女孩有一个疲劳度,每哭一次疲劳度加1,当疲劳度到达200时,可怜的小女孩累了……

while(父母不给买小红裙&& 疲劳度< 200)

{

我哭;

我偷看爸妈是否同意买裙;

疲劳度++;

}

例一:用while 语句实现求从1到100的累加和。

求1+2的和,我们可以写a = 1 + 2;求1加到100,我们当然可以这样写a = 1 + 2 + 3 + ... 100.不过这样写显然太累人了,要从1写到100啊!所以聪明如高斯的你,当然也知道这样写:a = (1+100) * 50;这确实是个在任何时候都值得称赞的,又快又简的方法,只是今天我们想让计算机累一点,老老实实地从1加到100。首先用我们先学的while式的循环。

请同学们打开CB,然后新建一空白的控制台程序,在main()函数体加入下面黑体部分代码。然后按F9运行。查看运行结果以加深印象。

//---------------------------------------------------------------------------

#include

#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused

int main(int argc, char* argv[])

{

int sum = 0; //变量sum将用于存储累加和,将它初始化为0,这很重要。

int i = 1; //i是每次要加的数,它从1开始。

while ( i<= 100)

{

sum += i;

i++;

}

//输出累加结果:

cout << "1到100的累加和为:" << sum << endl;

getchar();

}

sum 初始为0,然后在每一遍的循环里,它都加上i,而,i则每次都在被加后,增加1。最终,i递增到101,超过100了,这个循环也就完成了任务。

运行上面程序,输出结果为:

11005050

例二:用while循环实现简单的统计功能

统计功能在各行业里都经常用到,比如学校学生成绩总分的统计,商店中每日销售额的统计等。下面我们实现一个学生成绩的统计。

由于成绩中包含有80.5这样的需要小数的部分,所以我们使用实数类型。

保存,然后关闭上面的工程,然后再新建一个控制台工程。在主函数main加入以下黑体部分的代码:

//---------------------------------------------------------------------------

#include

#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused

int main(int argc, char* argv[])

{

float sum,score;

int num; //num 用于存储有几个成绩需要统计。

int i; //i 用于计数

//初始化:

sum = 0;

i = 1;

相关主题