Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.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和if语句_Javascript_If Statement - Fatal编程技术网

Javascript 如何在一个函数中生成switch和if语句

Javascript 如何在一个函数中生成switch和if语句,javascript,if-statement,Javascript,If Statement,它表示需要错误声明或语句。ts(1128)[13,7] 它指向else if语句您可以使用“default”关键字,但您可能应该更新代码,以便处理参数值不是正数或不是数字的情况: function texas(val) { var answer = ""; switch(val) { case 1: case 2: case 3: var answer = "low";

它表示需要错误声明或语句。ts(1128)[13,7] 它指向else if语句

您可以使用“default”关键字,但您可能应该更新代码,以便处理参数值不是正数或不是数字的情况:

function texas(val) {
    var answer = "";
    switch(val) {
        case 1:
        case 2:
        case 3:
            var answer = "low";
        case 4:
        case 5:
        case 6:
            var answer = "medium";
            break;
    } else if(val =>  7) {
        var answer = "Huge"
    }
    return answer;
}

函数(val){

如果(val您只需要在开关中返回

function texas(val) {

    if (val <= 0 || isNan(val)) {
       throw new InvalidOperationException("val should be a positive number");
    }


    switch(val) {
        case 1:
        case 2:
        case 3:
            return "low";
        case 4:
        case 5:
        case 6:
           return "medium";
        default:
            return "Huge"
    }
} 

它是
=
,必须删除
其他的
。答案的
var
是不必要的,只需用
let
声明一次即可。您忘记了
案例3:
中的
中断

函数(val){
让我们回答“”;
开关(val){
案例1:
案例2:
案例3:
回答=“低”;
打破
案例4:
案例5:
案例6:
回答:“中等”;
打破
}
如果(val>=7){
回答=“巨大”
}
返回答案;
}
console.log(德克萨斯州(2));

console.log(texas(8));
开关
块中不能使用
if
语句

您确实有
默认值
选项-

function texas(val) {
    var answer = "";
    switch(val) {
        case 1:
        case 2:
        case 3:
            var answer = "low";
            return answer;
        case 4:
        case 5:
        case 6:
            var answer = "medium";
 
            return answer;
    }
     if(val =>  7) {
        var answer = "Huge"
    }
    return answer;
}


请注意,如果您有一个负/负答案,它也将属于此子句,但您可以使用内联
?:
if语句来计算
answer
的值…

语法不允许将
else
放在
开关
else
之后,仅在与
if
stat组合使用时才有意义但是
开关有一个
默认值:
案例最符合您的意图(希望):


不要忘记在您的案例中加入
中断
,否则执行将“失败”并执行下一个案例。您永远不会以
低结束

您不能像人们前面所说的那样,将
else
放在
开关
块之后。
开关
语句更适合于多路分支和固定数据值。另一方面,
if
语句更适合于布尔值。您可以这样做。它可能不是最短的代码行是的,但只是为了让你知道还有另一种方法:

function texas(val) {
    var answer = "";
    switch(val) {
        case 1:
        case 2:
        case 3:
            var answer = "low";
            break;
        case 4:
        case 5:
        case 6:
            answer = "medium";
            break;
        default:
            if(val >= 7) {
              answer = "Huge"
            }

            // decide what should happen if val is 0, -1 or not even a number (e.g. texas('gotcha!')
            break;
    }

    return answer;
}

else if在没有if语句的情况下无法使用,最好删除
开关中不必要的
var
s。此代码不起作用。val=“notEvenAnumber”如何。它将返回巨大值,但val不大于或等于7。感谢您的更正,我已更新了我的答案您可以使用
开关(true)
以避免重复
案例。
function texas(val) {
    var answer = "";
    switch(val) {
        case 1:
        case 2:
        case 3:
            var answer = "low";
            break;
        case 4:
        case 5:
        case 6:
            answer = "medium";
            break;
        default:
            if(val >= 7) {
              answer = "Huge"
            }

            // decide what should happen if val is 0, -1 or not even a number (e.g. texas('gotcha!')
            break;
    }

    return answer;
}
function texas(val) {
    let answer = "";
    switch (true) {
        case (val == 1 || val == 2 || val == 3):
            answer = "low";
            break;
        case (val == 4 || val == 5 || val == 6):
            answer = "medium";
            break;
        case (val >= 7):
            answer = "huge";
            break;
    }
    return answer;
}