有时,某些指令需要重复执行。循环是执行此操作的理想方法。循环代表一组必须重复的指令。在循环的上下文中,重复称为迭代。
定环
迭代次数是确定/固定的循环称为确定循环。“ for循环”是确定循环的实现。
for (initial_count_value; termination-condition; step) { //statements
}
| 序号 | 定环和说明 |
|---|---|
| 1 | “for”循环 for循环将代码块执行指定的次数。 |
| 2 | for...in循环 for ... in循环用于循环访问对象的属性。 |
| 3 | for...of循环 for…of循环用于迭代可迭代对象,而不是对象常量。 |
1.for循环将代码块执行指定的次数。它可以用于迭代一组固定的值,例如数组。以下是for循环的语法。
var num = 5
var factorial=1;
for( let i = num ; i >= 1; i-- ) {factorial *= i ;
}
console.log(factorial);
for循环包括三个部分:初始化程序(i = num),条件(i> = 1)和最终表达式(i--)。
程序将计算数字5的阶乘并显示。for循环生成从5到1的数字序列,计算每次迭代中数字的乘积。
可以使用逗号运算符(,)将多个赋值和最终表达式组合在for循环中。
2.for ... in循环用于循环访问对象的属性。以下是“ for…in”循环的语法。
for (variablename in object) {statement or block to execute
}
在每次迭代中,将对象的一个??属性分配给变量名称,并且此循环一直进行到对象的所有属性用尽。
var obj = {a:1, b:2, c:3};for (var prop in obj) {console.log(obj[prop]);
}
for…of循环用于迭代可迭代对象,而不是对象常量。以下是“ for…of”循环的语法。
for (variablename of object){statement or block to execute
}
for (let val of[12 , 13 , 123]){console.log(val)
}
无限循环
当循环中的迭代次数不确定或未知时,将使用不确定循环。
无限循环可以使用-
| 序号 | 不确定循环和描述 |
|---|---|
| 1个 | while循环 每当指定的条件求值为true时,while循环就会执行指令。 |
| 2 | do...while循环 do ... while循环与while循环类似,不同之处在于do ... while循环在第一次执行循环时不会评估条件。 |
1.while循环 --每当指定的条件求值为true时,while循环就会执行指令。换句话说,循环在执行代码块之前先评估条件。
以下是while循环的语法。
while (expression) {Statement(s) to be executed if expression is true
}
与while循环相似,不同之处在于do...while循环不评估的第一次循环执行的条件。但是,将为后续迭代评估条件。换句话说,代码块将在do ... while循环中至少执行一次。
do {Statement(s) to be executed;
} while (expression);
循环控制语句
| 序号 | 循环控制语句和描述 |
|---|---|
| 1 | break语句用于将控制从构造中取出。 |
| 2 | Continue语句跳过当前迭代中的后续语句,并将控制权带回到循环的开始。 |
使用标签控制流程
lable是一个标识符,后跟一个冒号(:)被施加到一个语句或代码块。标签可以结合break,continue以更精确地控制循环。
在“ continue”或“ break”语句及其标签名称之间不允许换行。此外,标签名称和关联的循环之间不应有任何其他语句
| 序号 | 标签与说明 |
|---|---|
| 1 | 带break的label 标签可以不间断地使用,并继续更精确地控制循环。 |
| 2 | 带continue的label 在“ continue”或“ break”语句及其标签名称之间不允许换行。 |
outerloop: // This is the label name
for (var i = 0; i < 5; i++) {console.log("Outerloop: " + i);innerloop:for (var j = 0; j < 5; j++){if (j > 3 ) break ; // Quit the innermost loopif (i == 2) break innerloop; // Do the same thingif (i == 4) break outerloop; // Quit the outer loopconsole.log("Innerloop: " + j);}
}
成功执行上述代码后,将显示以下输出。
Outerloop: 0
Innerloop: 0
Innerloop: 1
Innerloop: 2
Innerloop: 3
Outerloop: 1
Innerloop: 0
Innerloop: 1
Innerloop: 2
Innerloop: 3
Outerloop: 2
Outerloop: 3
Innerloop: 0
Innerloop: 1
Innerloop: 2
Innerloop: 3
Outerloop: 4
outerloop: // This is the label name
for (var i = 0; i < 3; i++) {console.log("Outerloop: " + i);for (var j = 0; j < 5; j++) {if (j == 3) {continue outerloop;}console.log("Innerloop: " + j );}
}
成功执行上述代码后,将显示以下输出。 Outerloop: 0 Innerloop: 0 Innerloop: 1 Innerloop: 2 Outerloop: 1 Innerloop: 0 Innerloop: 1 Innerloop: 2 Outerloop: 2 Innerloop: 0 Innerloop: 1 Innerloop: 2