选择结构根据条件的不同,执行不同的分支语句,从而得到不同的结果。例如,若学生成绩大于60,则该学生的成绩及格,否则成绩不及格。若淘宝用户的积分在4~250,则其信用等级为“红心”;在250~10000,则信用等级为“蓝钻”等。
选择结构包括if条件语句和switch条件语句两种。
在JavaScript中,if条件语句可分为if、if…else、if…else if…else 3种。
1)if语句
if语句的语法格式如下:
如果条件表达式的结果为真,则执行代码块。
【例2-7】判断闰年
例2-7在Chrome浏览器控制台中的运行结果为:
2020年是闰年
2)if…else语句
if…else语句的语法格式如下:
if…else语句在条件表达式的结果为真时,执行代码块1,否则执行代码块2。
【例2-8】输出较大的数字
例2-8在Chrome浏览器控制台中的运行结果为:
较大的数是20
3)if…else if…else语句
if…else语句只能用于包含两个分支结果的情况,当分支结果更多时,可以使用if…else if…else语句。
【例2-9】判断会员积分等级
某电商网站根据用户积分数量共设定四个会员等级:积分不超过1000分为普通会员;积分大于1000分且不超过5000分为黄金会员;积分大于5000分且不超过10000分为铂金会员;积分大于10000分为超级会员。现有一用户积分为3000分,判断其会员等级。
例2-9在Chrome浏览器控制台中的运行结果为:
黄金会员
【例2-10】根据空气质量指数进行生活建议
AQI(Air Quality Index,空气质量指数)根据空气中的各种成分占比,将监测的空气浓度简化为单一的概念性数值形式,它将空气污染程度和空气质量状况分级表示,适合于表示城市的短期空气质量状况和变化趋势。空气质量指数、对应等级及相关建议如表2-12所示。
表2-12 空气质量指数、对应等级及相关建议
案例代码如下:
在上述代码中,变量x保存用户输入的值,根据用户输入的AQI数值的不同,给变量s赋相应的字符串值,最后在控制台中输出。当用户输入320时,例2-10在Chrome浏览器控制台中的输出结果为:
空气质量为严重污染,尽量不要留在户外。
当表达式的值可以列举时,可以采用switch语句,其语法格式为:
switch语句根据变量或者表达式的值,从上往下依次与每个case后面的常量值进行严格相等的比较,直至找到与变量或表达式严格相等的常量,进而执行该分支下的语句块。如果没有匹配的case分支,则执行default分支。
需要注意的是:
(1)每个case分支的语句块后面都会带一个break语句,否则,执行完当前case后,会继续执行下一个case分支。
(2)switch中的表达式与case语句中的取值是严格相等模式。
提示: switch语句适合处理判断分支较多的情况,代码可读性好。if语句适合处理判断分支较少的情况。
【例2-11】判断用户角色
在线考试系统中支持3种角色登录,分别是管理员、教师、学生,不同的角色登录后看到的系统页面不同,能够使用的功能也不尽相同。使用switch语句可以根据不同角色,显示不同的页面。项目开发中,可通过数字标识不同的角色,本例分别用数字0、1、2代表管理员、教师、学生角色。
例2-11在Chrome浏览器控制台中的运行结果为:
显示教师角色页面