首页教程Javascript

循环

不同类型的循环

JavaScript 支持不同类型的循环:

  • for : 循环代码块一定的次数
  • for/in: 循环遍历对象的属性
  • while: 当指定的条件为 true 时循环指定的代码块
  • do/while: 同样当指定的条件为 true 时循环指定的代码块

若想要 一遍又一遍地运行相同的代码,且每次值都不同,使用循环是很方便的 先举实例, 再分析语法

for循环

// eg1: tmp = ["daitu", "zana", "xiaobai"]; for (var i = 0; i < tmp.length; i++) { document.write(cars[i] + "<br>"); } //输出 daitu zana xiaobai // eg2: x = ""; for (var i=0; i<5; i++) { x += "this num is " + i + "<br>"; } //输出 this num is 1 this num is 2 this num is 3 this num is 4 this num is 5

for 循环的语法:

for ( 语句 1 ; 语句 2 ; 语句 3 ) { //被执行的代码块 }

语句 1 (代码块)开始前执行

语句 2 定义运行循环(代码块)的条件

语句 3 在循环(代码块)已被执行之后执行

从上面的例子2中,您可以看到:

  • Statement 1 在循环开始之前设置变量 (var i=0)。
  • Statement 2 定义循环运行的条件(i 必须小于 5)。
  • Statement 3 在每次代码块已被执行后增加一个值 (i++)。

关于for循环中语句的要点

语句 1

语句 1 是可选的, 即不使用语句 1 也可以。

可以在语句 1 中初始化任意(或者多个)值:

//省略语句1 var i=2,len=tmp.length; for (; i<len; i++) { document.write(tmp[i] + "<br>"); } //初始化多值 for (var i = 0, len = tmp.length; i<len; i++) //初始化了 i, len 两个值 { document.write(tmp[i] + "<br>"); }

语句 2

语句 2 也是可选的

如果语句 2 返回 true,则循环再次开始,如果返回 false,则循环将结束。

ps : 若省略了语句 2,一般要在循环内提供 break 否则循环就无法停下来

语句 3 语句 3 可省略(比如当循环内部有相应的代码时):

var i = 0, len = tmp.length; for (; i<len; ) { document.write(tmp[i] + "<br>"); i++; }

for/in 循环

var person = {fname: "Bill", lname : "Gates", age : 56}; for (x in person) // x 为属性名 { txt=txt + person[x]; }

一般来说for/in循环多用于对象


While 循环

实例

while (i<5) //只要i<5的条件成立, while循环就会一直进行下去 { x=x + "The number is " + i + "<br>"; i++; //以此打破循环, 避免死循环 }

语法 : 只要条件成立(true) , 循环就可以一直执行代码块

while (条件) { 需要执行的代码 }

do while 循环

实例

do { x += "The number is " + i + "<br>"; i++; } while (i<5); //只要i<5, do语句的内容就一直循环进行

语法

do { 需要执行的代码 } while (条件);

该循环至少会执行一次,即使条件为 false 它也会执行一次,因为代码块会在条件被测试前执行


break和continue语句

  • break 语句用于跳出循环
  • continue 用于跳过循环的一个迭代。
//break for (i = 0; i < 10; i++) { if (i == 3) break; // 当i=3时就会跳出循环 x += "the num is " + i + "<br>"; } //输出 the num is 0 the num is 1 the num is 2 //continue for (i = 0; i <= 3; i++) { if (i == 2) continue; //当i=3时就会跳过循环 x += "the num is " + i + "<br>"; } //输出 the num is 0 the num is 1 the num is 3

通过标签引用,break 语句可用于跳出任何 JavaScript 代码块:

tmp=["daitu","zana","xiaobai","mikasa"]; list: { document.write(tmp[0] + "<br>"); document.write(tmp[1] + "<br>"); document.write(tmp[2] + "<br>"); break list; document.write(tmp[3] + "<br>"); document.write(tmp[4] + "<br>"); document.write(tmp[5] + "<br>"); } //输出 daitu zana xiaobai