
条件分支
🍑 任务目标
🍑 任务背景
🍑 任务内容
🍉 if分支
if (条件1) {
// 代码块1
} else if (条件2) {
// 代码块2
} else {
// 代码块3
}
-
如果条件1为真就会执行代码块1。即使条件2为真也不会去执行代码块2,更不会执行代码块3
-
只有当条件1为假,并且条件2为真的时候,才会执行代码块2
-
如果条件1和条件2都为假,才会执行代码块3
-
else if 和 else 部分不是必需的。
-
可以有多个else if
var x = 20
if (x > 5) {
console.log('a')
} else if (x > 50) {
console.log('b')
} else {
console.log('c')
}
// 如果x=20,上述代码预期输出:'a'
// 如果x=100,上述代码预期输出也是:'a'
🍉 switch分支
switch (expression) {
case value1:
// 当 expression 的结果与 value1 匹配时,执行此处语句
[break;]
case value2:
// 当 expression 的结果与 value2 匹配时,执行此处语句
[break;]
...
case valueN:
// 当 expression 的结果与 valueN 匹配时,执行此处语句
[break;]
[default:
// 如果 expression 与上面的 value 值都不匹配,执行此处语句
[break;]]
}
-
[]表示这一部分语句是可选的,并不是说正常代码中要加[]
-
expression和value的是进行严格模式的匹配
-
如果所有case都没有匹配到,将执行default分支的代码
var expr = '樱桃'
switch (expr) {
case '樱桃':
// 代码块1
console.log('樱桃每斤7元');
break;
case '芒果':
case '木瓜':
// 代码块2
console.log('芒果 和 木瓜 每斤10元');
break;
default:
// 代码块3
console.log('对不起,我们没有 ' + expr + '.');
}
// 如果expr值为'樱桃',则预期输出:'樱桃每斤7元'
// 当expr的值为'樱桃'时就会执行代码块1,且代码块1中有break,所有不会执行其他代码块
// 注意:如果expr匹配到某一个case,且这个case里面代码没有break,那么执行完这个代码块后,紧接着就会执行下一个case的代码,不管expr有没有匹配到下一个case的值
// 所以当expr的值为'芒果'的时候,代码块2也将被执行
🍑 刷题练习
💧 题目1
var a = 8
if (a > 7) {
a = 3
}
if (a > 4) {
a = 5
}
console.log(a)
💧 题目2
var expr = ____
switch (expr) {
case 1:
// 代码块1
console.log(111);
case 2:
// 代码块2
console.log(222);
case 3:
// 代码块3
console.log(333);
break;
case 5:
// 代码块5
console.log(111);
case 6:
// 代码块6
console.log(222);
break;
default:
// 代码块7
console.log(111);
}
预期输出:
111
222
💧 题目3
var num = 89
if (num < 89) {
console.log('a')
} else if (num > 89) {
console.log('b')
} else {
console.log('c')
}
预期输出:
____
💧 题目4
if (8 > 7) {
console.log('Hello')
} else {
console.log('World')
}
预期输出:
____
💧 题目5
以下JavaScript代码运行的预期输出结果是?
if (78 < 67) {
if (45 > 23) {
console.log('a')
} else {
console.log('b')
}
} else {
if (89 > 45) {
console.log('c')
} else {
console.log('d')
}
}
预期输出:
____
需知:资料来源于C1认证
