zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    2016个人测试1(待续。。。)
    bzoj2548[Cstc2002]灭鼠行动
    noip2013 积木大赛
    noip2013 火柴排队
    Noip2000 T3 单词接龙
    noip2017爆炸记——题解&总结&反省(普及组+提高组)
    【2017.10.26-】后缀数组学习笔记
    20171002清北
    【搜索党】卡时技巧
    【noip】noip201503求和(题解可能不完美,但绝对详细)
  • 原文地址:https://www.cnblogs.com/webaction/p/12366416.html
Copyright © 2011-2022 走看看