当前位置:嗨网首页>书籍在线阅读

17-链式if…else语句

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

4.2.2 链式if…else语句

链式 if..else 语句并不是一种特殊的语法:它只是一系列简单的 if..else 语句的集合,其中的每个 else 字句包含了另一个 if..else 语句。这是一种非常值得一提的通用模式。比如,如果托马斯的迷信行为延续了整个星期,而且每到周三,他只拿一便士下注。这段逻辑用 if..else 来写就是这样的:

if(new Date().getDay() === 3) {   // new Date().getDay() 返回当前所在的星期
    totalBet = 1;                 // 的数字,星期天是0
} else if(funds === 7) {
    totalBet = funds;
} else {
    console.log("No superstition here!");
} 

按照这种方式组合了 if..else 语句后,就有了三种选择。聪明的读者可能意识到这种做法违反了自己建立的规则(不要把单行语句和块语句放在一起),这种情况是一个特例:它是一个很常见的模式,并且代码清晰易读。这个例子也可以用块语句重写为:

if(new Date().getDay() === 3) {
    totalBet = 1;
} else {
    if(funds === 7) {
        totalBet = funds;
    } else {
        console.log("No superstition here!");
    }
} 

不难看出,这样写并没有使代码更清楚,而且代码更加冗长了。