while循环结构基本语法

  • 格式:pdf
  • 大小:145.90 KB
  • 文档页数:6

1While循环结构2015/5/172提纲读程序,学while语法while循环结构及其执行过程while经典程序赏析思考题

2015/5/173提纲读程序,学while语法while循环结构及其执行过程while经典程序赏析思考题2015/5/1741、读程序,学while语句先来读一些小程序慢慢过渡到while语句

2015/5/175读程序(1)#includeintmain(){intsum=0;sum=sum+1;sum=sum+2;sum=sum+3;sum=sum+4;sum=sum+5;printf("%d\n",sum);}功能是什么?2015/5/176读程序(2)#includeintmain(){intsum=0;inti=1;sum=sum+i;i++;sum=sum+i;i++;sum=sum+i;i++;sum=sum+i;i++;sum=sum+i;i++;printf("%d\n",sum);}功能是什么?

22015/5/177读程序(2)#includeintmain(){intsum=0;inti=1;sum=sum+i;i++;sum=sum+i;i++;sum=sum+i;i++;sum=sum+i;i++;sum=sum+i;i++;printf("%d\n",sum);}功能是什么?2015/5/178读程序(3)#includeintmain(){intsum=0;inti=1;L1:sum=sum+i;i++;gotoL1;printf("%d\n",sum);}功能是什么?后果(效果)是什么?

2015/5/179读程序(4)#includeintmain(){intsum=0;inti=1;L1:if(i<=5){sum=sum+i;i++;gotoL1;}printf("%d\n",sum);}功能是什么?2015/5/1710读程序(5)#includeintmain(){intsum=0;inti=1;L1:if(i<=5){sum=sum+i;i++;gotoL1;}printf("%d\n",sum);}#includeintmain(){intsum=0;inti;i=1;while(i<=5){sum=sum+i;i++;}printf("%d\n",sum);}

2015/5/1711提纲读程序,学while语法while循环结构及其执行过程while经典程序赏析思考题2015/5/17122、while循环结构及其执行过程语句1;while(表达式1){语句块1;}语句2;语句1;start:if(表达式1){ 语句块1;gotostart;}语句2;

32015/5/17132、while循环结构及其执行过程语句1;start:if(表达式1){ 语句块1;gotostart;}语句2;很明显,表达式1决定着循环何时结束,所以出现在表达式1中的变量称为循环变量。永远不会结束的循环称为死循环,编程时要注意避免出现死循环。2015/5/1714提纲读程序,学while语法while循环结构及其执行过程while经典程序赏析思考题

2015/5/1715while经典程序赏析(1)#includeint main(){int sum=0;int i;int n;scanf("%d",&n);i=1;while(i<=n){sum=sum+i;i++;}printf("%d\n",sum);return 0;}累加输入整数n,计算sum=1+2+3+…+n,输出sum2015/5/1716while经典程序赏析(2)#includeint main(){int fact=1;int i;int n;scanf("%d",&n);i=1;while(i<=n){fact=fact*i;i++;}printf("%d\n",fact);return 0;}累乘输入整数n,计算f=n!=1×2×3×…×n,输出f

2015/5/1717while经典程序赏析(3)#includeint main(){int fact=1;int sum=0;int i;int n;scanf("%d",&n);i=1;while(i<=n){fact=fact*i;sum=sum+fact;i++;}printf("%d\n",sum);return 0;}累加和累乘的混合输入整数n,用while循环求sum=1!+2!+3!+…+n!,输出sum2015/5/1718while经典程序赏析(4)#includeint main(){int sum=0;int i;int n;scanf("%d",&n);i=1;while(i<=n){sum=sum+i;i++;}printf("%d\n",sum);return 0;}累加输入整数n,计算sum=1+2+3+…+n,输出sum

42015/5/1719while经典程序赏析(5)#includeint main(){double fact=1;int i;int n;scanf("%d",&n);i=1;while(i<=n){fact=fact/i;i++;}printf("%lf\n",fact);return 0;}累除输入整数n,计算f=󰫚󰢔!=󰫚÷󰫛÷󰫜÷⋯÷n,输出f2015/5/1720while经典程序赏析(6)#includeint main(){double fact=1;double sum=0;int i;int n;scanf("%d",&n);i=1;while(i<=n){fact=fact/i;sum=sum+fact;i++;}printf("%lf\n",sum);return 0;}累加和累除的混合输入整数n,用while循环求sum=󰫚󰫚!+󰫚󰫛!+󰫚󰫜!+…+󰫚󰢔!,输出sum

2015/5/1721while经典程序赏析(7)#includeint main(){double fact=1,sum=1;//sum中存1/1!int i,n,sign=1;//sign来代表正负scanf("%d",&n);i=2;while(i<=n){fact=fact/i; sum=sum+sign*fact;sign=-sign;//改变符号i++;}printf("%lf\n",sum);return 0;}累加和累除的混合,符号的交错输入整数n,用while循环求sum=󰫚󰫚!+󰫚󰫛!−󰫚󰫜!+󰫚󰫝!+…+󰫚󰢔!,输出sum2015/5/1722虽说,兵无常势,水无常形,程序没有固定的写法,但是,一些经典的算法若能烂熟于心,定能如虎添翼!

2015/5/1723前面的while循环例子都是有固定的循环次数,比如n次,只有当循环次数耗尽才能结束循环能不能当某个条件满足时提前终止循环呢?可以,break的用法!能不能当某个条件满足时提前终止本次循环,而进入下一次循环呢?能,continue用法!2015/5/1724while经典程序赏析(8)#includeint main(){int sum,i;sum=0;i=1;while(i<=10){if(i%3==0){break;}sum=sum+i;i++;}printf("%d\n",sum);return 0;}while和break语句的配合使用当条件满足时,提前结束循环

52015/5/1725while经典程序赏析(9.1)#includeint main(){int sum,i;sum=0;i=1;while(i<=10){if(i%3==0){continue;}sum=sum+i;i++;}printf("%d\n",sum);return 0;}while和continue语句的配合使用当条件满足时,提前结束本次循环,开始下次循环2015/5/1726while经典程序赏析(9.1)#includeint main(){int sum,i;sum=0;i=1;while(i<=10){if(i%3==0){continue;}sum=sum+i;i++;}printf("%d\n",sum);return 0;}while和continue语句的配合使用当条件满足时,提前结束本次循环,开始下次循环然而,这段代码却带来了灾难:死循环!!!为什么?建议少用continue,尤其是用while循环时!!!

2015/5/1727while经典程序赏析(9.2)#includeint main(){int sum,i;sum=0;i=0;while(i<=6){if(i%3==0){i++;continue;}sum=sum+i;i++;}printf("%d\n",sum);return 0;}while和continue语句的配合使用当条件满足时,提前结束本次循环,开始下次循环这段代码可以正确运行!!还是建议while和continue能不一起用就不一起用!!2015/5/1728提纲读程序,学while语法while循环结构及其执行过程while经典程序赏析思考题

2015/5/1729思考题(1)分析:1、总体上是一个累除问题2、如果把1/1!作为第一项,那么第i项为1/i!,是在前一项的基础上除以i3、循环次数未知4、循环结束条件是累加的最后一项的值小于0.00001,且不能累加上去2015/5/1730思考题(2)分析:1、斐波纳契数列:1,1,2,3,5,8,13,…2、要求不用数组3、循环次数已知,上界是204、也是个累加问题

62015/5/1731本次课程结束,谢谢大家