循环 4个月前

编程语言
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
image
EchoEcho官方
无论前方如何,请不要后悔与我相遇。
1377
发布数
439
关注者
2223323
累计阅读

热门教程文档

Typescript
31小节
React
18小节
Vue
25小节
Rust
84小节
C#
57小节