在经历了在多重嵌套下,if语句显得非常凌乱,代码的可读性也非常差经过这次经历,越来越多的人选择使用它switch语句。switch语句备受青睐的原因,是因为Switch可以使用更简单的代码实现和使用语句if只有相同的功能。只不过switch语句需要需要在多重判断下要实施,需要有一定的逻辑思维能力。所以,为了我们更好地理解和使用它switch语句这就要求我们是对的switch语句结构解析。
让我们先明确一下适用于switch语句的场景:switch 语句用于根据不同的条件执行不同的动作。我们可以称之为开关语句。当然,理解上不要认为只有开关。你可以想象它是一个多路开关。事实上,switch语句是一种多分支结构。让我们来看看它的句子结构:
switch (表达式)
{
case 常量表达式1: 语句1
case 常量表达式2: 语句2
┇
case 常量表达n: 语句n
default: 语句n+1
}
与if不同,switch后面的小括号是一种完整的表达式。if条件表现为两种相互对立的状态,而多分支结构的switch则表现为多个整数值。if条件的对立性总是相对于0,所以只要某种数据类型的表达式能表示0值,就可以充当if句子的条件。但是,switch中的表达式值需要对应不同的处理入口,相当于入口号,因此限制用整形数表示是明智的。
当在括号内,switch后面“表达式”case背后的值与某个case背后的值“常量表达式”当值相等时,执行此case背后的句子。执行case后面的句子后,流程控制转移到下一个case继续执行。如果你只想执行这个case语句,不想执行其他case语句,那么你需要在这个case语句后面添加break,跳出switch语句。正常情况下,我们都希望只执行一个合格的case语句,所以我们通常会在后面添加break,以便在执行完成后直接跳出switch语句。
让我们用一个简单的例子来解释:
getDay() 方法返回 0 至 6 之间的周名数字(weekday number)。
(Sunday=0, Monday=1, Tuesday=2 ..)
用周名数字计算周名:
switch (new Date().getDay()) {
case 0:
day = "星期天";
break;
case 1:
day = "星期一";
break;
case 2:
day = "星期二";
break;
case 3:
day = "星期三";
break;
case 4:
day = "星期四";
break;
case 5:
day = "星期五";
break;
case 6:
day = "星期六";
}
“case常量表达式:”即处理入口(也称为(也称为)“标号”),常量表达式相当于入口号,入口号不能重复,因此每个case的常量表达式值必须不同。入口号不能重复,但可以颠倒。也就是说,入口号的顺序并不重要。每个case(包括default)的出现顺序可以任意。在if语句中,if和else下描述的语句是独立的。但在switch语句中,每个case只是标定处理入口,每个入口的语句不排他。因此,switch语句中所有处理入口描述的语句都构成了一个顺序执行的动作序列。
出现在上面的代码中break是一个独立构成语句的关键词。它的功能是在switch中、for、while、do-在while语句中,跳出结构,转向执行,吓唬一个语句。或者break语句强行终止上述语句的执行。对于if语句,if-else结构中的语句块本身是排他性的,因此没有必要用break进行干预。
通过相信你对switch语句的实例分析switch语句结构这个知识点有了很一定的理解,其实一般来说,switch语句还是很容易理解的,只要稍微学习一下,就能熟练掌握switch语句。当然,有了这个网站专题讲解课程那就更有效了。