循环结构,理念,逻辑

来源:互联网 发布:宁夏干部网络培训 编辑:程序博客网 时间: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的问题很相似,只不过每次加的内容不一样。



原创粉丝点击