WaterNorth's Blog

06条件分支

3 分钟WaterNorth

一、“if” 语句 #

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

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

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

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

二、条件运算符 ‘?’ #

语法:

let result = condition ? value1 : value2;

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

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

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 代码块。

就像这样:

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 存在)。

评论

0

评论功能待配置数据库后启用。