风舞残阳 2008-4-1 11:21
switch 语句
当指定的表达式的值与某个标签匹配时,即执行相应的一个或多个语句。
[b]switch([/b][i]expression[/i][b]){[/b][b]case[/b][i]label[/i][b]:[/b][i]statementlist[/i][b]case[/b][i]label[/i][b]:[/b][i]statementlist[/i]...[b]default[/b][b]:[/b][i]statementlist[/i][b]}[/b]参数[i]expression[/i]要求值的表达式。[i]label[/i]根据[i]expression[/i]来匹配的标识符。如果[i]label[/i]===[i]expression[/i],则立即从冒号后的[i]statementlist[/i]处开始执行,直到遇到一个可选的[b]break[/b]语句,或到达[b]switch[/b]语句的最后。[i]statementlist[/i]要被执行的一个或多个语句。说明使用[b]default[/b]子句来提供一个语句,该语句只在没有任何一个标签值与[i]expression[/i]相匹配时才被执行。它可以出现在[b]switch[/b]代码块内的任何地方。
可以指定零或多个[i]label[/i]块。如果没有[i]label[/i]和[i]expression[/i]的值匹配,并且没有提供[b]default[/b]情况,则不执行任何语句。
通过switch语句执行流程如下:求[i]expression[/i]的值并依次序查看[i]label[/i],直到找到一个匹配。如果[i]label[/i]的值等于[i]expression[/i]的值,则执行它相应的[i]statementlist[/i]。
继续执行,直到遇到一个[b]break[/b]语句,或者[b]switch[/b]语句结束。这意味着如果没有使用一个[b]break[/b]语句,则多个[i]label[/i]块被执行。如果没有[i]label[/i]等于[i]expression[/i]的值,则跳转到[b]default[/b]情况。如果没有[b]default[/b]情况,则跳转到最后一步。继续执行紧接[b]switch[/b]代码块末尾的语句。示例下面示例[wiki]测试[/wiki]一个[wiki]对象[/wiki]的[wiki]类[/wiki]型:
functionMyObject(){...}[b]switch([/b][wiki]object[/wiki].constructor[b]){[/b][b]case[/b]Date[b]:[/b]...[b]case[/b]Number[b]:[/b]...[b]case[/b]String[b]:[/b]...[b]case[/b]MyObject[b]:[/b]...default:...}要求版本3