歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> switch語句的妙用

switch語句的妙用

日期:2017/3/1 9:08:14   编辑:Linux編程

switch語句的普通用法很簡單,如下:

var a = 3;
switch (a) {
    case 1:
        console.log(a);
        break;
    case 2:
    case 3:
        console.log(a);
        break;
    default:
        break;
}

這裡a和case列表中從上而下逐一做比較,如果匹配就執行case中的代碼,若有break則跳出,無break則繼續往下匹配,直到新的匹配和break或switch代碼塊結束。
注意:
a和case值的匹配算法是執行嚴格相等比較的(‘===’),通常a和case的值都是簡單值。

case的值除了簡單值之外,還可以是各種表達式,switch (a){...}中的a會和case中的表達式的結果值進行比較(“===”),由此,我們可以這樣:

var a = [4], b = '3';

function foo(a, b) {
    return Math.abs(a - b) < 2;
}

switch (true) {
    case !(a && b):    //過濾掉a,b其中有為‘假值’的情況
        console.log('a:'+a,' b:'+b);
        break;
    case foo(a,b):   //當a,b的差值在2以內,foo函數返回true
        console.log('a - b < '+Math.abs(a-b));
    case a == b:
        console.log(a+'=='+b);
        break;
    case a < b:
        console.log(a+'<'+b);
        break;
    case a > b:
        console.log(a+'>'+b);
        break;
    default:
        break;
}

以上例子中,true和每個case的表達式的值進行嚴格相等比較,當且僅當case表達式的值為布爾值true時才匹配,任何其他真值都不匹配。
注意:case !(a && b):必須把&&、||運算符的結果進行顯示轉換為布爾值,才能匹配(因為&&、||的表達式的返回值不是布爾類型,它返回的是表達式中第一個為true、或第一個為false的那個值)

所以,只要你想得到的,只要符合規則,都能用switch實現!就是不知道這樣寫的代碼好不好了!

Copyright © Linux教程網 All Rights Reserved