- 1、本文档共113页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * (1) 3种循环都可以用来处理同一问题,一般情况下它们可以互相代替。 (2) while和do-while循环,是在while后面指定循环条件的,在循环体中应包含使循环趋于结束的语句(如i++,或i=i+1等)。 for循环可以在表达式3中包含使循环趋于结束的操作,甚至可以将循环体中的操作全部放到表达式3中。因此for语句的功能更强,凡用while循环能完成的,用for循环都能实现。 (3) 用while和do-while循环时,循环变量初始化的操作应在while和do-while语句之前完成。而for语句可以在表达式1中实现循环变量的初始化。 3.11.4 几种循环的比较 一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。内嵌的循环中还可以嵌套循环,这就是多层循环。 3种循环(while循环、dowhile循环和for循环)可以互相嵌套。例如,下面几种都是合法的形式: (1) while( ) {┆ while( ) {…} } 3.12 循环的嵌套 (2) do {┆ do {…}while( ); }while( ); (3) for(;;) {┆ for(;;) {…} } (4) while( ) {┆ do {…}while( ); ┆ } (5) for(;; ) {┆ while( ) {…} ┆ } (6) do {┆ for (;;) {…} }while( ); 在3.9节中已经介绍过用break语句可以使流程跳出switch结构,继续执行switch语句下面的一个语句。实际上,break语句还可以用于循环体内。 break语句的一般格式为 break; 其作用为使流程从循环体内跳出循环体,即提前结束循环,接着执行循环体下面的语句。break语句只能用于循环语句和switch语句内,不能单独使用或用于其他语句中。 3.13 break语句和continue语句 continue语句的一般格式为 continue; 其作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。 continue语句和break语句的区别是:continue语句只结束本次循环,而不是终止整个循环的执行。而break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。如果有以下两个循环结构: (1) while(表达式1) {┆ if(表达式2)break ┆ } (2) while(表达式1 ) {┆ if(表达式2) continue; ┆ } 程序(1)的流程图如图3.18所示,而程序(2)的流程如图3.19所示。请注意图3.18和图3.19中当“表达式2”为真时流程的转向。 图3.18 图3.19 例3.12 用下面公式求π的近似值。π/4≈1-1/3+1/5-1/7+…直到最后一项的绝对值小于10-7为止。 根据给定的算法很容易编写程序如下: #include iostream #include iomanip #include cmath using namespace std; int main( ) {int s=1; double n=1,t=1,pi=0; while((fabs(t))1e-7) {pi=pi+t; n=n+2; 3.14 编写循环结构的程序 s=-s; t=s/n; } pi=pi*4; cout″pi=″setiosflags(ios∷fixed)setprecision(6)piendl; return 0; } 运行结果为 pi=3.141592 注意: 不要把n定义为整型变量,否则在执行“t=s/n;”时,得到t的值为0(原因是两个整数相除)。 例3.13 求Fibonacci数列前40个数。这个数列有如下特点:第1、2个数为1、1。从第3个数开始,每个数是其前面两个数之和。即 F1=1 (n=1) F2=1 (n=2) Fn=Fn-1+Fn-2 (n≥3) 这是一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假
文档评论(0)