JavaScript while, do while for 循环语句

来源:互联网 发布:多益网络有哪些游戏 编辑:程序博客网 时间:2024/05/01 23:10

介绍循环语句时我们先要清楚明白什么时循环。

就拿生活中的例子而言:

    1.食堂阿姨打菜:

     接过顾客的的餐盘→询问菜品→打菜→打菜→递回餐盘,重复以上过程,直到所有顾客的菜都打完了。


  2.快递员送快递:

     查看送件地址→赶往目的地→电话告知收件人→收件人签收→交递快件,重复以上过程,直到所有需要送的快递都处理完了。


以上两个场景都有一个共同点:

有条件重复地做一件事。每次做的事情不同但类似。

程序是为了解决实际问题的,实际问题中存在重复动作,那么程序中也应该有相应的描述,这就是循环。

例如我们写一个计算从1-10的和的案例,

有以下三种方案:

方案一:

var sum = 1+2+3=4+5+6+7+8+9+10;

方案二:

var sum2 = 0;
    sum2 += 1;
    sum2 += 2;
    sum2 += 3;
    sum2 += 4;
    sum2 += 5;
    sum2 += 6;
    sum2 += 7;
    sum2 += 8;
    sum2 += 9;
    sum2 += 10;

我们来看这两个案例,虽然两个案例都实现了最后结果,但我们如果想要计算10000以内的数字和呢?是不是我们要写10000行代码呢?这现实吗?

那我我就必须想要寻找一种更优的结构来实现,答案无疑是用循环再好不过了。

示例:

var sum3 = 0;
var n = 1;
while(n <= 10){
    sum3 += n;
    n++;
};

如果我们想要计算10000甚至更大的数字,那么我们只需要把10改为我们任何一个需要的数字,怎么样,运用循环简便吧,好了话不多说,下面就让我们正式开始学习循环吧。

先来介绍while 循环:

While循环是表示:当...则...,也就是当某个条件成立时,则一直重复做。大家可以把上面的例子运行一下,运用我们昨天介绍的开发者工具查看运行轨迹以及变化情况。由于csdn限制我就不一一进行发示例图了,见谅啊。

下面再给大家介绍一个前几天写的水仙花数,查看三位数中都有那些是水仙花数,

var Num = 100;

while (Num <= 999) {
    var Fir_Num = Math.floor(Num / 100);
    var Sec_Num = Math.floor((Num % 100) / 10);
    var Thr_Num = Num % 10;
    var sum = Math.pow(Fir_Num, 3) + Math.pow(Sec_Num, 3) + Math.pow(Thr_Num, 3);
    if(sum == Num){
        alert(Num+"水仙花数")
}
   /* alert(Num + (sum == num ? "是" : "不是") + "水仙花数");*/
    Num++;
}
就给大家讲这么写吧,在往下讲就更深了,现在大家只要知道怎么用就行了,涉及到更深层次的就要看个人了,具体情况具体对待。
下面是do while循环
do{
执行体
}while(条件)
do while与while的区别在于,do循环体内必然要执行一次,也就是说,先执行do{}内的在进行while里面的。
while:while(){  } 花括号内的循环体可能一次都不执行。
很多时候两者你感觉不出有原则性上的指导意义上的区别,需要特地拿出来讲的东西。
一个是条件前置,一个是条件后置,后者保证循环体至少会进入执行一次。所以由一个宏,为了插入代码块的,就叫
do {...} while(0)
其目的是为了给代码块加上两边的大括号。
下面我们用do{ } while() 写一个代码  如:2009年,中国的GDP为49089.82万亿元,增长率为2%,美国的GDP为142562万亿元,如果双方都保持这样的增长率求,
多少年后中国能够超过美国?
var year = 2009;
var CHGDP = 49089.82;
var USGDP = 142562.75;
 do{
      CHGDP = CHGDP * (1+0.08);
      USGDP = USGDP * (1+0.02);
     year++
 }while(CHGDP < USGDP);
 alert(year);

讲了这么多我们来总结一下循环的套路:     忍不住吟诗一首,自古深情留不住,总是套路得人心。

  1. 初始状态,

  2. 循环条件

  3. 循环体(需要重复做的事情)

  4. 为下次循环做准备

那如何去写循环的程序呢? 回答四个问题:

  1. 初始状态,

  2. 循环条件

  3. 循环体(需要重复做的事情)

  4. 为下次循环做准备

下面给大家总结一下水仙花数和GDP的问题:

 

水仙花数问题

GDP预测问题

初始状态

Num = 100

varyear =2009;
varCHGDP =49089.82;
varUSGDP =142562.75;

循环条件

(Num <=999)

 

CHGDP< USGDP

 

循环体

    varFir_Num =Math.floor(Num / 100);
    varSec_Num =Math.floor((Num % 100) / 10);
    varThr_Num = Num %10;
    varsum =Math.pow(Fir_Num,3) + Math.pow(Sec_Num,3) + Math.pow(Thr_Num,3);
    if(sum == Num){
        alert(Num+"水仙花数")
}
}

 CHGDP = CHGDP * (1+0.08);
 USGDP = USGDP * (1+0.02);
 year++;

 

为下次做准备

Num++

year++;


下面给大家先简单介绍一下for循环。

其实for循环很简单

var myarray = new Array();
for (i = 0; i < 10; i++) {
   myarray[i] = i;
}

前三个都为必选项,分别是:

表达式:该表达式只在执行循环前被执行一次

boolean表达式:true 执行,false结束

表达式:在每次经过循环的最后执行该递增表达式


原创粉丝点击