首页 理论教育 C语言程序设计:while循环案例思路

C语言程序设计:while循环案例思路

时间:2023-11-23 理论教育 版权反馈
【摘要】:while语句用来实现“当型”循环结构,其一般形式:while语句的执行过程:图4-2while循环流程步骤一,计算while后表达式的值。步骤四,退出while循环。while循环中的表达式一般是关系表达式或逻辑表达式,但也可以是数值表达式或字符表达式,只要其值非零,就可执行循环体。用while语句求1到100的和。

C语言程序设计:while循环案例思路

while语句用来实现“当型”循环结构,其一般形式:

while语句的执行过程(图4-2):

图4-2 while循环流程

步骤一,计算while后表达式的值。当其值为非零(真)时,执行步骤二,当其值为零(假)时,执行步骤四。

步骤二,执行循环体中的语句。

步骤三,转去执行步骤一。

步骤四,退出while循环。

格式说明:

(1)while循环的特点是先判断条件后执行循环体语句,因此循环体语句有可能一次也不执行(条件一开始就不成立)。

(2)while循环中的表达式一般是关系表达式或逻辑表达式,但也可以是数值表达式或字符表达式,只要其值非零,就可执行循环体。

(3)循环体语句可以是一个语句,也可以是多个语句。当只有一个语句时,外层的大括号可以省略,如果循环体是多个语句时,一定要用花括号“{}”括起来,以复合语句的形式出现。

(4)循环体内一定要有改变循环条件的语句,使循环趋于结束,否则循环将无休止地进行下去,即形成“死循环”。

【例4-1】用while语句求1到100的和。

程序分析

这是一个累加的问题,需要先后将100个数相加,要重复进行100次加法运算,显然这可以用循环结构来实现。重复执行循环体100次,每次加一个数。每次所加的数是有规律的,后一个数是前一个数加1,因此,加完一个数之后,在原来的基础上加1就可以得到下一个数。其问题的求解步骤如下:

步骤一,首先定义三个变量,用i表示循环控制变量,用number表示累加的数据,用sum存储累加和。(www.xing528.com)

步骤二,给累加数number和循环控制变量i分别赋初值1,表示从1开始进行累加,给累加变量sum赋初值0。

步骤三,使用循环结构反复执行加法,在sum原有值的基础上再增加新的i值,加完后再使number加1,使其成为下一个要累加的数,同时循环控制变量加1,表示循环次数。

步骤四,在每次执行完循环后判断是否i<=100,如果超过100就停止循环累加。

步骤五,最后输出计算结果,即输出sum的值。

程序代码

在这段代码中,可以看出每次循环变量i要加1。每次结束后,while语句都要测试其循环条件i<=100,同时每次循环自然数number也要加1,若二者所发生的变化一致,则可以考虑直接用循环变量i用来代替要加的自然数number,以节省内存存储空间,简化程序,因此该段代码可以改写为:

请大家思考一下,如果是求从键盘上任意输入的100个数的和,上述程序应该如何改动?若上述程序中“sum=sum+i;”和“i++;”两语句的顺序调换一下,会是什么结果?若还想得到正确的输出结果,程序应该如何改写?

用循环结构解决问题时,应该注意以下几点:

(1)循环体如果包含一个以上的语句,应该用花括弧括起来,作为复合语句出现,如果不加花括号,则while语句的范围只到while后面第一个分号处。

(2)不要忽略给i和sum赋初值,否则它们的值是不可预测的,结果显示不正确。

(3)在循环体中应该有使i趋于结束的语句,如在本例中,循环控制条件为i<=100,在循环体中应该有使得i值增加以最终导致i>100的语句,在循环体内用i=i+1达到目的。如果没有此语句,则i的值始终不改变,循环永远不结束。

对于本项目开始的任务导入中,求平均成绩问题,采用while循环实现的代码如下:

使用循环结构的过程中,一定要注意,在循环体中,应该有最终将循环控制条件为假的操作,如上面题目的i,代表输入的人数,可以使得循环条件最终为假,否则循环将永远不会停止——这就是所谓的死循环(无限循环)。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈