开始的写法:

        var money = parseFloat(prompt("我有多少资产?(万)"))
        switch (money) {
            case (money >= 500):
                console.log('我真是超级富豪');
                break;
            case (money >= 300 && money < 500):
                console.log('我是个中产阶级');
                break;
            case (money >= 100 && money < 300):
                console.log('我可以努力变得更有钱些');
                break;
            case (money >= 50 && money < 100):
                console.log('我要努力变成百万富豪');
                break;
            case (money >= 30 && money <50):
                console.log('算了,算了,好好活着吧');
                break;
            default:
                console.log("人嘛,重要的就是开心啦");
        }

怎么都只会走default打印的在这里插入图片描述
通过找问题, switch判断式为布尔类型 ,switch的条件为true。往里传 true的值,则case后面的表达式的值为true就进入分支,直到执行到break或switch结束。
后来的写法:

        var money = parseFloat(prompt("我有多少资产?(万)"))
        switch (true) {
            case (money >= 500):
                console.log('我真是超级富豪');
                break;
            case (money >= 300 && money < 500):
                console.log('我是个中产阶级');
                break;
            case (money >= 100 && money < 300):
                console.log('我可以努力变得更有钱些');
                break;
            case (money >= 50 && money < 100):
                console.log('我要努力变成百万富豪');
                break;
            case (money >= 30 && money <50):
                console.log('算了,算了,好好活着吧');
                break;
            default:
                console.log("人嘛,重要的就是开心啦");
        }

在这里插入图片描述
这就可以了,避免了写if…else if …else的复杂性。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐