日期:2009-01-03  浏览次数:20838 次

switch 语句&nbsp;&nbsp;语言参考 <br>
<br>
<br>
描述<br>

当指定的表达式的值与某个标签匹配时,即执行相应的一个或多个语句。<br>
语法<br>
switch (expression) {<br>
&nbsp;&nbsp;&nbsp;case label :<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;statementlist<br>
&nbsp;&nbsp;&nbsp;case label :<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;statementlist<br>
&nbsp;&nbsp;&nbsp;...<br>
&nbsp;&nbsp;&nbsp;default :<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;statementlist<br>
} <br>
switch 语句的语法组成如下: <br>
<br>
部分&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;描述 <br>
expression&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;要求值的表达式。 <br>
label&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;根据 expression 来匹配的标识符。如果 label === expression,则立即从冒号后的 statementlist 处开始执行,直到遇到一个可选的 break 语句,或到达 switch 语句的最后。 <br>
statementlist 要被执行的一个或多个语句。 <br>
<br>
<br>
说明<br>
使用 default 子句来提供一个语句,该语句只在没有任何一个标签值与 expression 相匹配时才被执行。它可以出现在 switch 代码块内的任何地方。 <br>
可以指定零或多个 label 块。如果没有 label 和 expression 的值匹配,并且没有提供 default 情况,则不执行任何语句。<br>
<br>
通过 switch 语句执行流程如下: <br>
<br>
求 expression 的值并依次序查看 label,直到找到一个匹配。 <br>
如果 label 的值等于 expression 的值,则执行它相应的 statementlist。 <br>
继续执行,直到遇到一个 break 语句,或者 switch 语句结束。这意味着如果没有使用一个 break 语句,则多个 label 块被执行。 <br>
如果没有 label 等于 expression 的值,则跳转到 default 情况。如果没有 default 情况,则跳转到最后一步。 <br>
继续执行紧接 switch 代码块末尾的语句。 <br>
下面示例测试一个对象的类型: <br>
function MyObject() {<br>
...}<br>
switch (object.constructor){<br>
&nbsp;&nbsp;&nbsp;&nbsp;case Date:<br>
&nbsp;&nbsp;&nbsp;&nbsp;...<br>
&nbsp;&nbsp;&nbsp;&nbsp;case Number:<br>
&nbsp;&nbsp;&nbsp;&nbsp;...<br>
&nbsp;&nbsp;&nbsp;&nbsp;case String:<br>
&nbsp;&nbsp;&nbsp;&nbsp;...<br>
&nbsp;&nbsp;&nbsp;&nbsp;case MyObject:<br>
&nbsp;&nbsp;&nbsp;&nbsp;...<br>
&nbsp;&nbsp;&nbsp;&nbsp;default: <br>
&nbsp;&nbsp;&nbsp;&nbsp;...<br>
<br>