如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
5第5章循环结构的程序设计在人们所要处理的问题中常常遇到需要反复执行某一操作的情况。这就需要用到循环控制。许多应用程序都包含循环。顺序结构、选择结构和循环结构是结构化程序设计的3种基本结构,是各种复杂程序的基本构造单元。因此程序设计者必须熟练掌握循环结构的概念及使用方法。while语句的一般形式如下:while(表达式)语句其作用是:当指定的条件为真(表达式为非0)时,执行while语句中的内嵌语句。其流程图见图5-1。其特点是:先判断表达式,后执行语句。while循环称为当型循环。图5-1例5.1求1+2+3+…+100。用流程图表示算法,见图5-2。#include<iostream>usingnamespacestd;intmain(){inti=1,sum=0;while(i<=100){sum=sum+i;i++;}cout<<″sum=″<<sum<<endl;}运行结果为sum=5050图5-2需要注意:(1)循环体如果包含一个以上的语句,应该用花括号括起来,以复合语句形式出现。如果不加花括号,则while语句的范围只到while后面第一个分号处。(2)在循环体中应有使循环趋向于结束的语句。do-while语句的特点是先执行循环体,然后判断循环条件是否成立。其一般形式为do语句while(表达式)它是这样执行的:先执行一次指定的语句(即循环体),然后判别表达式,当表达式的值为非零(“真”)时,返回重新执行循环体语句,如此反复,直到表达式的值等于0为止,此时循环结束。可以用图5-3表示其流程。图5-3图5-4例5.2用do-while语句求1+2+3+…+100。先画出流程图,见上图5-4。#include<iostream>usingnamespacestd;intmain(){inti=1,sum=0;do{sum=sum+i;i++;}while(i<=100);cout<<″sum=″<<sum<<endl;return0;}运行结果与例5.1相同。可以看到:对同一个问题可以用while语句处理,也可以用dowhile语句处理。dowhile语句结构可以转换成while结构。二者区别C++中的for语句使用最为广泛和灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句。for语句的一般格式为for(表达式1;表达式2;表达式3)语句它的执行过程如下:(1)先求解表达式1。(2)求解表达式2,若其值为真(值为非0),则执行for语句中指定的内嵌语句,然后执行下面第(3)步。若为假(值为0),则结束循环,转到第(5)步。(3)求解表达式3。(4)转回上面第(2)步骤继续执行。(5)循环结束,执行for语句下面的一个语句。可以用图5-5来表示for语句的执行过程。图5-5for语句最简单的形式也是最容易理解的格式如下:for(循环变量赋初值;循环条件;循环变量增值)语句例如for(i=1;i<=100;i++)sum=sum+i;它的执行过程与图5-2完全一样。它相当于以下语句:i=1;while(i<=100){sum=sum+i;i++;}显然,用for语句简单、方便。for语句的使用有许多技巧,可以使程序精炼简洁。说明:(1)for语句的一般格式中的“表达式1”可以省略,此时应在for语句之前给循环变量赋初值。(2)如果表达式2省略,即不判断循环条件,循环无终止地进行下去。也就是认为表达式2始终为真。(3)表达式3也可以省略,但此时程序设计者应另外设法保证循环能正常结束。(4)可以省略表达式1和表达式3,只有表达式2,即只给循环条件。(5)3个表达式都可省略。(6)表达式1可以是设置循环变量初值的赋值表达式,也可以是与循环变量无关的其他表达式。(7)表达式一般是关系表达式(如i<=100)或逻辑表达式(如a<b&&x<y),但也可以是数值表达式或字符表达式,只要其值为非零,就执行循环体。C++中的for语句比其他语言中的循环语句功能强得多。可以把循环体和一些与循环控制无关的操作也作为表达式1或表达式3出现,这样程序可以短小简洁。但过分地利用这一特点会使for语句显得杂乱,可读性降低,建议不要把与循环控制无关的内容放到for语句中。(1)3种循环都可以用来处理同一问题,一般情况下它们可以互相代替。(2)while和do-while循环,是在while后面指定循环条件的,在循环体中应包含使循环趋于结束的语句(如i++,或i=i+1等)。for循环可以在表达式3中包含使循