Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在本例中,switch语句是否从顶部开始比较案例?_Javascript_Switch Statement - Fatal编程技术网

Javascript 在本例中,switch语句是否从顶部开始比较案例?

Javascript 在本例中,switch语句是否从顶部开始比较案例?,javascript,switch-statement,Javascript,Switch Statement,我发现这个示例可以使范围与switch语句一起工作: function GetText(value) { var result; switch (true) { case ((value >= 26) && (value <= 50)): result = ">= 26."; break; case ((value >= 1) &&

我发现这个示例可以使范围与switch语句一起工作:

function GetText(value)
{
    var result;

    switch (true)
    {
        case ((value >= 26) && (value <= 50)):
            result = ">= 26.";
            break;

        case ((value >= 1) && (value <= 25)):
            result = "Between 1 and 25.";
            break;

        case (value == 0):
            result = "Equals Zero.";
            break;

    }

    return result;
}

因此,如果我通过了29,即使我有两个
true
案例,第一个案例也会被选中。我的问题是switch语句在大多数编程语言中是如何工作的,它将从顶部开始比较,还是仅在这种情况下比较(这样写是好还是坏?)

开关
语句从上到下检查匹配项

发件人:

如果找到匹配项,程序将执行相关语句。如果多个案例与提供的值匹配,则会选择匹配的第一个案例,即使案例彼此不相等


我会这样做(使用
if
else if
链):

函数GetText(值){
var结果;
如果(值==0){
result=“等于零。”;

}否则如果(值你到底为什么要使用
开关来执行此操作?是的,计算顺序是从上到下。
break
停止计算。@Blender:事实上我从未见过这样的习惯用法,但我觉得它可读性和趣味性很强,+1。是的,它们是从上到下计算的。如果输入51I,请检查会发生什么情况一系列的
if
else-if
语句,因为:1.您不需要将其全部封装在
开关中;2.您不需要在条件后面加冒号,也不需要
break;
在每个
if
语句中;3.在我看来,语法更容易阅读,也不太可能犯错误(例如忘记一个
break
)。唯一的缺点是必须使用大括号
{}
如果您的
if
中有多行代码要执行,但这使它对我来说更具可读性。我想这主要是一个个人偏好问题,不在这里讨论,但您的方法很有趣。谢谢,我会接受您的回答。一般来说,您认为使用此语句或一系列if语句会更好吗更好(超过10种情况)?
else if(值
function GetText(value)
{
    var result;

    switch (true)
    {
        case ((value >= 26)):
            result = ">= 26 .";
            break;

        case ((value >= 1)):
            result = "Between 1 and 25.";
            break;

        case (value == 0):
            result = "Equals Zero.";
            break;

    }

    return result;
}
function GetText(value) {
    var result;

    if (value == 0) {
        result = "Equals Zero.";
    } else if (value <= 25) {
        result = "Between 1 and 25.";
    } else if (value <= 50) {
        result = "Between 26 and 50.";
    }

    return result;
}