zoukankan      html  css  js  c++  java
  • switch

    var num=7;
    switch(true){
     
    case num < 0: alert("less than 0"); break;
            case num >= 0 && num <= 10: alert("between 0 and 10"); break;
            default: alert("more than 10");
    }
    switch语句在比较值时使用的是全等操作符,因此不会发生类型转换。
     
    在switch 中可以使用任何数据类型,case的值不一定常量,可以是变量,甚至表达式。
     
    <script>
    function funcSwitch(sFlag) {
    switch(sFlag){
    case "Test1":
          alert("Test1");
          break;
    case "Test2":
          alert("Test2");
          break;
    default:;
    }
    }

    funcSwitch("Test2");
    </script>
    如果case 后面对应的不是一个字符串,而是一个变量的话。可以结合RegExp 达成。
    <script>
    var str1 = "Test1";
    var str2 = "Test1";
    function funcSwitch(sFlag)
    {
    var regExp = new RegExp(sFlag);
    switch(true) {
    case regExp.test(str1):
          alert("Test1");
          break;
    case regExp.test(str2):
          alert("Test2");
          break;
    default:;
    }
    }

    funcSwitch("Test1");

    </script>
     
    --------------------------
    作者:Justin
    出处:http://justinw.cnblogs.com/
     
    switch (something) {
        case 1:
            todoA();
            break;
        case 2:
            todoB();
            break;
        case 3:
            todoC();
            break;
        //...
    }

    这样的代码本身也没什么,只是可读性差一些,看起来有点费劲,JavaScript虽然支持switch-case,不过有一种更好的写法值得推广:

    // JScript source code
    //something的值是1、2、3...
    var cases = {
        1: todoA,
        2: todoB,
        3: todoC
    };
    if (cases[something]) {
        cases[something]();
    }
       
  • 相关阅读:
    Leetcode 乘积最大子数组 (两种思路)
    C++string函数库-->to_string
    Zigzags CodeForces
    石子游戏(Leetcode每日一题)
    树形dp入门题(Leetcode 337. 打家劫舍 III)
    E
    背包九讲
    通过树状dp来求树的直径
    329. 矩阵中的最长递增路径(Leetcode每日一题)
    关于图的匹配,边覆盖,独立集,顶点覆盖
  • 原文地址:https://www.cnblogs.com/dingyuanxin/p/3901267.html
Copyright © 2011-2022 走看看