(1)循环结构
while(条件语句) {
循环体 : 重复执行的代码
}
条件语句可以是关系表达式、布尔类型的值、其他类型的值 (都会转换成布尔类型)
(2)结构解析
判断条件是否成立, 如果成立, 执行循环体代码, 重复判断条件是否成立;如果不成立, 跳出循环, 执行大括号之后的代码。
var num = 0;
while(num < 10) {
console.log("hello world!");
num++; // 千万不能忘, 忘了就是死循环
}
console.log("我运行完了");
这样就打印了10遍hello world。
注意点
1.循环变量 循环条件 循环变量的自增或者自减 都必须有
2. 循环变量自增或者自减一定不能忘
(1)循环结构
do {
循环体 : 条件成立时重复执行的代码
} while (判断条件);
条件语句可以是关系表达式、布尔类型的值、其他类型的值 (都会转换成布尔类型)。
(2)结构解析
先无条件执行一遍循环体, 然后再判断, 如果条件成立, 就重复执行循环体代码,直到条件不成立。
//需求:用户名 : admin 密码 : 123456
do {
var userName = prompt("请输入用户名");
var password = prompt("请输入密码");
} while(userName != "admin" || password != "123456");
注意点
1.循环变量 循环条件 循环变量的自增或者自减 都必须有
2. 循环变量自增或者自减一定不能忘
(1)循环结构
for(语句1 ; 语句2 ; 语句3) {
循环体 : 条件成立时重复执行的代码
}
语句1 : 声明一个变量, 来记录循环次数, 叫做循环变量;
语句2 : 判断条件(通常是条件表达式), 他是用来控制循环的结束还是继续;
语句3 : 通常都是循环变量的自增或者自减。
(2)结构解析
先执行语句1(声明循环变量),再执行语句2, 判断条件是否成立(如果成立 执行循环体代码,循环变量自增, 重复执行语句2;如果不成立, 就跳出循环, 执行大括号外面的代码)。
// 需求 : 打印10次"hello world ""
for(var i = 0; i < 10; i++;) {
console.log("hello world");
}
注意点
1. 小括号里面的语句都可以省略, 但是分号不能省略, 三个语句都省略了, 就变成死循环了;
2. 循环变量的定义可以提到循环外;
3. 循环变量自增可以写在循环体里面。
while : 适用于循环次数不固定的场景
do-while : 适用于循环次数不固定的场景, 但是循环体代码必须无条件执行一次
for : 适用于循环次数固定的场景
也就是一个循环套着一个循环。
循环嵌套中, 我们要找到外层循环变量和内存循环变量之间的关系
外层循环决定行, 内层循环决定列。
比如:
/*需求;打印下面的图案:
* * * *
* * * *
* * * *
* * * *
*/
// 外层循环 决定多少行
for(var i = 0; i < 4; i++) {
// 内层循环
for(var j = 0; j < 4; j++) {
document.write("* ");
}
document.write("")
}
最后再提一下break与continue的区别:
break :
1.适用范围 : 只能用于switch语句和循环语句里。
2.作用 : switch里面结束switch语句;循化里面结束当前循环语句。
continue :
1.使用范围 : 只能用于循环语句
2.作用 : 结束当前这次循环, 直接进行下一轮循环
continue使用注意 : continue结束本次循环, 本次循环里, continue以后的语句都不执行