语句块
大约 4 分钟
语句块
通用语句块
以下语句是通用的,可参考c++。
- if
- if-else if
- 条件运算符?
- switch
- while
- for
- break-continue
- do while
?
补充
// 多个?
let message = (age < 3) ? 'Hi, baby!' :
(age < 18) ? 'Hello!' :
(age < 100) ? 'Greetings!' :
'What an unusual age!';
break-continue补充
禁止
break/continue
在 ‘?’ 的右边(i > 5) ? alert(i) : continue; // continue 不允许在这个位置
有时候我们需要一次从多层嵌套的循环中跳出来。标签可以实现这一功能!
标签 是在循环之前带有冒号的标识符:
break <labelName>
语句跳出循环至标签处:outer: for (let i = 0; i < 3; i++) { for (let j = 0; j < 3; j++) { let input = prompt(`Value at coords (${i},${j})`, ''); // 如果是空字符串或被取消,则中断并跳出这两个循环。 if (!input) break outer; // (*) // do something } } alert('Done!');
上述代码中,
break outer
向上寻找名为outer
的标签并跳出当前循环。continue
指令也可以与标签一起使用。在这种情况下,执行跳转到标记循环的下一次迭代。因此,控制权直接从
(*)
转至alert('Done!')
。我们还可以将标签移至单独一行:
outer: for (let i = 0; i < 3; i++) { ... }
break
指令必须在代码块内。从技术上讲,任何被标记的代码块都可以被跳出。
switch
强调一下,这里的相等是严格相等。被比较的值必须是相同的类型才能进行匹配。