06条件分支

一、“if” 语句

if(...) 语句计算括号里的条件表达式,如果计算结果是 true,就会执行对应的代码块。

1
2
3
4
if (year == 2015) {
alert( "That's correct!" );
alert( "You're so smart!" );
}

建议每次使用 if 语句都用大括号 {} 来包装代码块,即使只有一条语句。这样可以提高代码可读性。

与C++类似, if 语句块后还可以添加 else if 代码块和 else 代码块。

二、条件运算符 ‘?’

语法:

1
let result = condition ? value1 : value2;

计算条件结果,如果结果为真,则返回 value1,否则返回 value2

使用一系列问号 ? 运算符可以返回一个取决于多个条件的值。

1
2
3
4
5
6
7
8
let age = prompt('age?', 18);

let message = (age < 3) ? 'Hi, baby!' :
(age < 18) ? 'Hello!' :
(age < 100) ? 'Greetings!' :
'What an unusual age!';

alert( message );

可能很难一下子看出发生了什么。但经过仔细观察,我们可以看到它只是一个普通的检查序列。

  1. 第一个问号检查 age < 3
  2. 如果为真 — 返回 'Hi, baby!'。否则,会继续执行冒号 ":" 后的表达式,检查 age < 18
  3. 如果为真 — 返回 'Hello!'。否则,会继续执行下一个冒号 ":" 后的表达式,检查 age < 100
  4. 如果为真 — 返回 'Greetings!'。否则,会继续执行最后一个冒号 ":" 后面的表达式,返回 'What an unusual age!'

三、switch语句

switch 语句有至少一个 case 代码块和一个可选的 default 代码块。

就像这样:

1
2
3
4
5
6
7
8
9
10
11
12
13
switch(x) {
case 'value1': // if (x === 'value1')
...
[break]

case 'value2': // if (x === 'value2')
...
[break]

default:
...
[break]
}
  • 比较 x 值与第一个 case(也就是 value1)是否严格相等,然后比较第二个 casevalue2)以此类推。
  • 如果相等,switch 语句就执行相应 case 下的代码块,直到遇到最靠近的 break 语句。如果没有 break,程序将不经过任何检查就会继续执行下一个 case
  • 如果没有符合的 case,则执行 default 代码块(如果 default 存在)。
Author

WaterNorth

Posted on

2025-08-21

Updated on

2025-08-24

Licensed under