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>
posted @ 2020-02-26 13:05  鬼牛阿飞  阅读(1055)  评论(0编辑  收藏  举报