3.1 条件执行语句
根据不同的条件执行指定条件下的路径代码(符合次条件下的代码),从而达到不同的结果
3.1.1 if 语句
if语句是使用最频繁的条件执行语句
if(条件) {
满足条件后执行的代码
} else {
其他条件时执行的代码
}
这里的条件可以是任意表达式,且求值的结果不一定是布尔值,ECMAScript
会自动调用Boolean()
函数来将条件结果改为布尔值,如果为true
就执行满足条件的代码,如果为false
就执行else里的代码
if 语句可以多个一起使用,达到多条判断效果
if(条件1) {
代码1;
} else if(条件2) {
代码2;
} else if(条件3){
代码3
} else {
条件4
}
每个if
通过else
来连接,以达到对同一个值的判断 ,通过由上到下的顺序来依次和条件进行匹配,最终执行匹配条件下的代码
3.1.2 switch 语句
switch
用于不同条件下执行不同代码,在条件较多时比if语句有优势,设定特定值来进行条件判断时推荐使用switch
switch(表达式) {
case value1:
// 表达式 等于 value1 时要执行的代码
break;
case value2:
// 表达式 等于 value2 时要执行的代码
break;
default:
// 表达式 不等于任何一个 value 时要执行的代码
- 关键字 switch 后面括号内可以是表示或值,通常是一个变量
switch
可用于所有变量,不局限于数值- 关键字 case,后跟一个选项的表达式或值,后面跟一个冒号
- switch 表达式的值会与结构中的 case 的值做比较
- 如果存在匹配全等(===),则与该 case 关联的代码块会被执行,并在遇到 break 时停止,整个 switch 语句代码执行结束
如果所有的 case 的值都和表达式的值不匹配,则执行 default 里的代码
let num = 25;
switch(true) {
case num < 0:
console.log('less than 0');
break;
case num >= 0 && num <= 10:
console.log('Between 0 and 10');
break;
case num > 10 && num <= 20:
console.log('Between 10 and 20');
break;
default:
console.log('More than 20')
}
<
判断符输出的结果都为布尔值,所以需要switch
给与的值也为布尔值,以此来和变量进行判断.switch
中case
只支持判断是否全等,所以需要确认判断值和条件值是否匹配.3.2 循环执行语句
在循环语句中满足循环条件即可循环,当条件不满足时退出循环
- 当条件转换成布尔值只能是 true 时执行死循环
常量转换成布尔值只为while('aaaa')
while(1)
while(true)
true
时,死循环3.2.1 for 循环
无法通过for(初始化变量;条件表达式;操作表达式) {
//循环代码
}
例子:
for(let i = 1; i < 5; i++) {
console.log(i);
}
while
循环实现的逻辑,同样不能通过 for 循环实现,for循环只是将循环相关的代码封装在一起而已。
在for循环里面,初始化、条件表达式、变量自加表达式都不是必须填写的 当都没有填写时,它将变为无穷循环
for( ; ; ) { //虽然不需要填写,但是 ; 必须填写
//无穷循环
}
当只填写条件表达式时,和while循环样式就想同了
let sum = 5;
let i = 1;
for( ; i < sum ; ) {
console.log(i);
i++
}
3.2.2 循环嵌套
for循环里面可以再嵌套多个循环,不一定全是循环,也可以是判断语句,多个循环嵌套输出可以表达出更复杂的用法
例子:打印星星
bar star = '';
for(let i = 1; i < 5; i++) {
for(let j = 1; j < i; j++) {
star += '⭐';
console.log(star);
}
3.2.3 while 循环
while
循环先检测循环条件,再执行循环代码,当不满足循环条件时退出循环
let i = 1;
while(i < 5) {
console.log(i);
i += 1;
}
在while循环还未开始时检测循环条件,不满足直接不进入循环,转而执行后面的代码
do while 循环
这是一种后测试循环语句,即此循环先运行一边,再判断循环条件,该循环体内部代码至少执行一次
let i = 0;
do {
i += 2;
console.log(i);
} while(i < 10);
当变量不满足循环条件,但进入循环一次又满足后:
let i = 10;
do {
i -= 2;
console.log(i);
} while(i < 10 && i > 0);
3.2.5 break 和 continue 语句
break
和continue
语句为执行循环代码提供了严格的控制手段。其中:
break 语句用于立即退出循环,强制执行后的下一条语句。
let num = 0;
for (let i = 0; i < 10; i++) {
if(i % 5 == 0) {
break;
}
num++;
}
console.log(num); // 4
continue 语句也用于立即退出循环,但会再次从循环顶部开始执行
let num = 0;
for(let i = 1; i < 10; i++) {
if(i % 5 == 0) {
continue;
}
num++;
}
console.log(num); // 8
break 和 continue 都可以与标签语句一起使用,返回代码中特定的位置。这通常是在嵌套循环中
通过内部循环的 break 跳出外部循环
let num = 0;
outeemost:
for(let i = 0; i < 10; i++) {
for(let j =0; j < 10; j++) {
if(i == 5 && j == 5) {
break outermost;
}
num++;
}
}
console.log(num); //55
通过 continue 终止当前内部循环
let num = 0;
outermost:
for(let i = 0; i < 10; i++) {
for(let j =0; j < 10; j++) {
if(i == 5 && j == 5) {
continue outermost;
}
num++;
}
}
console.log(num); // 95
添加标签语句后,continue 可以直接终止当前循环,开始外部下一阶段循环
3.2.6 标签语句
- 标签语句用于给语句加标签,语法如下
label: statement
- 下面是一个例子:
在这个例子中,start 是一个标签,可以在后面通过 break 或 continue 语句引用。标签语句的典型应用场景是嵌套循环。start: for(let i = 0; i < count; i++) {
console.log(i);
}