编程语言
188
不同类型的循环
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