zoukankan      html  css  js  c++  java
  • [译]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;
    }
  • 相关阅读:
    disruptor和ArrayBlockingQueue和LinkedBlockingQueue队列性能对比
    守护线程的作用和前台线程的区别
    tomcat导入idea作为maven项目
    百度网盘不限速
    netty ChannelOption参数 backlog 和 somaxconn同时设置才会生效
    dubbo的初探
    IDEA的常用快捷键
    Lucene简单了解和使用
    Hadoop的简单了解与安装
    Nginx的简单了解与使用
  • 原文地址:https://www.cnblogs.com/otakuhan/p/7669578.html
Copyright © 2011-2022 走看看