• [译]Javascript中的switch语句


    本文翻译youtube上的up主kudvenkat的javascript tutorial播放单

    源地址在此:

    https://www.youtube.com/watch?v=PMsVM7rjupU&list=PL6n9fhu94yhUA99nOsJkKXBqokT3MBK0b

    我们何时应该使用swtich语句

    为了增强可读性,我们可以用switch语句来替代if-else-if语句

    注意到以下代码有多个if-else-if语句

    var userInput = Number(prompt("Please enter a number", ""));
    if (userInput == 1) 
    {
        alert("You number is One");
    }
    else if (userInput == 2) 
    {
        alert("You number is Two");
    }
    else if (userInput == 3) 
    {
        alert("Your number is Three");
    }
    else 
    {
        alert("Your number is not between 1 and 3");
    }

    以上代码可以用switch语句来写以大大增加可读性

    switch (userInput) 
    {
        case 1:
            alert("You number is One");
            break;
        case 2:
            alert("You number is Two");
            break;
        case 3:
            alert("You number is Three");
            break;
        default:
            alert("You number is not between 1 and 3");
            break;
    }

    一般来说,你需要在每个case后加入break来跳出swtich语句

    那么如果在switch语句里不添加break会发生什么呢?

    那么在找到case之后会自动运行下一个case,直到运行完整个程序

    在以下的例子中,我们不再case1中加入break语句,那么当我们输入数字1之后,我们会得到两个alerts,第一个alerts是从case1中得来,第二个alert是从case2中得来.

    var userInput = Number(prompt("Please enter a number", ""));
    switch (userInput) 
    {
        case 1:
            alert("You number is One");
        case 2:
            alert("You number is Two");
            break;
        case 3:
            alert("You number is Three");
            break;
        default:
            alert("You number is not between 1 and 3");
            break;
    }

    你可是应该将多个case语句合并在一起呢?

    如果你想要给多个case同一份代码的话,可以如下把各个case合并在一起.一个case语句如果里面没有任何语句的话那么就是多个不同的值共享一个case.一个没有内含代码的case会自动跳转到下一个case

    在这个例子中,case1和case2的情况会自动跳转到case3并且运行其中的代码

    var userInput = Number(prompt("Please enter a number", ""));
    switch (userInput) 
    {
        case 1:
        case 2:
        case 3:
            alert("You number is "+ userInput);
            break;
        default:
            alert("You number is not between 1 and 3");
            break;
    }
  • 相关阅读:
    线程基础1
    组合数学的卡特兰数 TOJ 3551: Game of Connections
    2017ACM/ICPC广西邀请赛-重现赛(感谢广西大学)
    Codeforces Round #430 (Div. 2)
    线代之高斯消元
    牛客网Wannafly模拟赛
    TOJ3039: 材质贴图
    AtCoder Grand Contest 019
    TOJ 3974: Region n条直线m个圆最多将圆分为几个区域
    AIM Tech Round 4 (Div. 2)
  • 原文地址:https://www.cnblogs.com/otakuhan/p/7669578.html
Copyright © 2020-2023  润新知