JavaScript之if流程控制演練,if寫在區間內怎么解決


什么是編程?通俗意見上來講,就是把人的思維與步驟通過代碼的形式書寫展示出來,JavaScript的流程控制包含條件判斷if,switch選擇,循環for while;if(表達式 條件)=>真{語句}

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 6     <title>條件判斷if else</title>
 7     <script>
 8 //    var score=?
 9 //    var score=50;
10 //    if(score>90)
11 //    {
12 //     console.log('執行該語句')
13 //    }
14 //    else 
15 //    {
16 //     console.log('不滿足上面條件,執行該語句')
17 //    }
18 
19    var score=79;
20    if(score>90)
21    {
22     console.log('score>90執行該語句')
23    }
24    else  if(score>80)
25    {
26     console.log('score>80執行該語句')
27    }
28    else
29    {
30     console.log('不滿足上面條件,執行該語句')
31    }
32     </script>
33 </head>
34 <body>
35 </body>
36 </html>

如果要求90<=score<=100,執行結果為123,80<=score<90,執行結果為456,否則都是789

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 6     <title>if else 區間執行</title>
 7     <script>
 8         var score=70;
 9         if(90<=score<=100){
10             console.log("123")
11         }
12         else if(80<=score<90)
13         {
14             console.log('456')
15         }
16         else
17         {
18             console.log('789')
19         }
20     </script>
21 </head>
22 <body> 
23 </body>
24 </html>

 通過上面代碼,我們發現,不論score=?,它的值永遠是123,這是為什么了?原來:這樣寫不能實現你想要的邏輯,但這表達式本身是合法的復合表達式。這個表達式由兩個關系運算符組成,關系運算符是左結合的,故C語言是這樣解釋這個表達式的:先看左邊的90<=score,這個關系運算表達式的結果是布爾值:true or false然后表達式就變成了 “前次布爾結果”<= 100,這還是一個關系運算表達式,前次的boolean結果如果為ture就會自動轉換為整型1,這樣整個表達式就變成了 1 <= 100。同理,前次bool為false的話,整個表達式就成了 0 <= 100。不管前面是0還是1,都小於100,所以整個表達式永遠為true按照你的邏輯,應該寫成邏輯與表達式: 90 <= score && score <= 100

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 6     <title>if else 區間執行解決辦法</title>
 7     <script>
 8         var score=70;
 9         if(90<=score&&score<=100){
10             console.log("123")
11         }
12         else if(80<=score&&score<90)
13         {
14             console.log('456')
15         }
16         else
17         {
18             console.log('789')
19         }
20     </script>
21 </head>
22 <body> 
23 </body>
24 </html>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM