2017-10-12 56 views
0

我想在switch語句中使用比較(5> 2),並且我無法使其工作。你能告訴我如何在switch語句中使用比較嗎?如何在開關語句中使用比較?

這裏是我的if語句:

if (5 > 2) { 
    console.log("Correct!") 
} else if (5 < 2) { 
    console.log("Wrong!") 
} else { 
    console.log("What!?") 
} 

我希望把if語句變成switch語句,像這樣:

switch() { 
    case : 
     break; 
    default : 
     break; 
} 

如果我不能把我的if語句成切換語句,然後請告訴我。

+1

它*可以被完成,但通常不應該被完成,因爲if/else if/else結構通常更短更清晰。 (當然,這是一個意見。) – nnnnnn

+0

好的,謝謝你的提示。 – Alex

回答

0
let a = 2, b = 5; 
switch(true){ 
    case a>b: 
    console.log('do something here'); 
    break; 
    default: 
    console.log('do something there'); 
    break; 
} 
+0

我可以將true更改爲null嗎? – Alex

+0

@Alex - 否。「switch」試圖將該值與具有相同值的第一個「case」匹配。 – nnnnnn

+0

我可以將true更改爲值爲true的另一種日期類型(例如字符串)嗎? – Alex

0

從字面上看,沒有必要這樣做 - 正如您所看到的,爲比較生成可接受的值需要基本上完成重複的工作。

var result; 

if (5 > 2) { 
    result = 'greater'; 
} else if (5 < 2) { 
    result = 'less'; 
} 

switch(result) { 
case 'greater': 
    console.log("Correct!") 
    break; 
case 'less': 
    console.log("Wrong!"); 
    break; 
default: 
    console.log("What!?"); 
    break; 
} 
+0

或者,您可以按照其他答案重複執行此操作。 – nnnnnn

+0

另一個答案不單獨處理'b> a'和'b == a'。 – sighrobot

+0

當然可以。答案中實際顯示的代碼只是一個非常簡短的例子,在'default'之前只有一個'case',但是您可以根據需要添加儘可能多的個案,因此您只需要'case b> a'並且'案例b == a'。 – nnnnnn