循环结构,理念,逻辑
来源:互联网 发布:宁夏干部网络培训 编辑:程序博客网 时间:2024/06/05 15:24
5.0循环结构
5.1循环结构的概念:
先看一下生活中的场景:
(1) 食堂阿姨打菜:结果盘子——询问菜品——打菜——递回盘子,重复以上过程,直到所有顾客把菜打完。
(2) 快递员送快递:查看送件地址——赶往目的地——打电话通知收件人——提交快递,重复以上过程,直到快递送完。
以上场景都有一个共同点:有条件的重复做一件事,每一次做的事情不同,但类似。
程序是为了解决实际问题的,实际问题中存在着重复动作,那么程序中也应该有着相应的描述,这就是循环。
案例:
/*方案一*/
var sum=1+2+3+4+5+6+7+8+9+10;
alert(sum);
/*方案二*/
var sum2= 0;
sum2 +1;
sum2 +2;
sum2 +3;
sum2 +4;
sum2 +5;
sum2 +6;
sum2 +7;
sum2 +8;
sum2 +9;
sum2 +10;
alert(sum2);
但是这两种方法的描述方式都不太理想,如果要是加到:10000呢?
注意观察方法二,他重复的做一件事(将一个数加到sum2中),每一次做的不同但类似。
我们希望找到一个更好的方法:
/*方案三:改方案二*/
var sum3= 0;
var n = 1;
while(n<= 10){
sum3 +=n;
n++;
}
方案三表达的含义和方案二一样,但是表达的方式要好得多,比如加到10000,只需要把条件N<=10改为n<=10000就行。
5.2while循环
While是表示“当······则······”,也就是当某个条件成立时,则一直重复做
While(条件)····先判断,再循环。
Do····while(条件) 先循环,再判断。
5.3for循环
var year=2009;
var m=142562.75;
var z=49089.82;
do{
/* m=m + m * 0.02;
z =z + z * 0.08;*/
m *=0.02+1;
z*=0.08+1;
year++;
}while(m> z);
alert("中国将会在"+year+"年赶超美国小次老");
满足条件,继续循环,不满足,跳出循环。
水仙花:
总结一下循环的套路:
(1) 初始化状态
(2) 循环条件
(3) 循环体(重复做的事)
(4) 为下次循环做准备()
如何去写循环的程序呢?回答四个问题
(1) 初始状态是怎样的?
(2) 重复做的条件是什么?
(3) 重复做什么
(4) 怎么过度到下一次循环
水仙花数问题
GDP预测问题
初始化状态
Num=100
var year=2009;
var m =142562.75;
var z =49089.82;
循环条件
Num<=999
m > z
循环体
var a=Math.floor(num1/100);
var b=Math.floor((num1% 100)/10);
var c=Math.floor(num1%10);
var sum=Math.pow(a,3)+Math.pow(b,3)+Math.pow(c,3);
if(sum == num1){
alert(num1+"是水仙花!");
m *=0.02+1;
z *=0.08+1;
为下次循
环做准备
Num1
Year
案例:计算圆周率:π=(1 - 1/3 + 1/5 - 1/7)*4,最后一项的绝对值小于10-6。
他跟我们之前解决的问题相似:1+2+3+4+····+10的问题很相似,只不过每次加的内容不一样。
- 循环结构,理念,逻辑
- SWIFT逻辑控制之循环结构
- 结构化程序设计理念
- Kotlin——程序的基本逻辑结构之选择、循环和跳转基本语法
- 02..循环与逻辑
- Java逻辑判断,循环
- 循环结构
- 循环结构
- 循环结构
- 循环结构
- 循环结构
- 循环结构
- 循环结构
- 循环结构
- 循环结构
- 循环结构
- 循环结构
- 循环结构
- lua-5 模块与包
- LeetCode 628 Maximum Product of Three Numbers
- 关于SVC和SHVC的残酷事实
- 【项目实战】自监控-09-DataFrame索引操作(上篇)
- ForkJoinPool框架示例
- 循环结构,理念,逻辑
- UVa540(队列数组)团体队列
- 抽屉原理-poj3370-Halloween treats
- 136. Single Number
- css动画属性实现3d效果立体盒子效果
- CVE-2016-10190浅析-FFmpeg堆溢出漏洞
- NYOJ 220 推桌子
- 前言,写给自己的话
- 日志架构(译)