Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.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函数不将我的参数传递给其他函数_Javascript_Function_Switch Statement - Fatal编程技术网

JavaScript函数不将我的参数传递给其他函数

JavaScript函数不将我的参数传递给其他函数,javascript,function,switch-statement,Javascript,Function,Switch Statement,我遇到了一个问题,我试图将参数从一个函数发送到另一个函数,接收参数的函数使用switch语句对其求值并返回它,但它只返回我输入的变量,而不是“高级主变量”。 这是我不明白我做错了什么的代码,请记住我对编码非常陌生,也许有人能给我一些建议。提前谢谢 function calculatexxx(x) { let calculatexxx= x; switch (x) { case (x >= 2400): console.log("Se

我遇到了一个问题,我试图将参数从一个函数发送到另一个函数,接收参数的函数使用switch语句对其求值并返回它,但它只返回我输入的变量,而不是“高级主变量”。 这是我不明白我做错了什么的代码,请记住我对编码非常陌生,也许有人能给我一些建议。提前谢谢

function calculatexxx(x)  {
    let calculatexxx= x;
    switch (x) {
        case (x >= 2400):
            console.log("Senior Master");
            break;
        case (2399 > x > 2200):
            console.log("National Master");
            break;
        case (2199 > x> 2000):
            console.log("Expert");
            break;
        case (1999 > x> 1800):
            console.log("Class A");
            break;
        case (1799 > x> 1600):
            console.log("Class B");
            break;
        default:
            console.log("Error input not valid");

    return(x);

    }
}
function displayxxx() {
    console.log("Your Rank is: " + calculatexxx(2400)); // 

}
displayxxx(); 

看看这个表情

2399 > x > 2200
然后取三个值,比如零、2300(应该返回
true
)和10000

由于同一运算符,表达式按外观顺序执行

      x     2399 > x     value   value > 2200     yield     result
--------  ------------  -------  ------------  ----------  --------
      0   2399 >     0    true    true > 2200   1 > 2200     false
   2300   2399 >  2300    true    true > 2200   1 > 2200     false
 100000   2399 > 10000   false   false > 2200   0 > 2200     false
最终结果总是
false
,因为第一部分返回一个布尔值,转换后的值永远不会大于最后一个值

结论

进行以下两个比较:


要获取
开关
语句,需要获取条件部分中的比较值,如果是其他条件,则需要获取其他条件中的比较值。通过直接返回,您可以省略
break
,因为函数以它结尾

函数计算(x){
开关(真){
案例x>=2400:返回“高级大师”;
案例x>=2200:返回“国家大师”;
案例x>=2000:返回“专家”;
案例x>=1800:返回“A类”;
案例x>=1600:返回“B类”;
}
返回“错误输入无效”;
}
函数显示(){
log(“你的排名是:”+calculate(2400));
}

显示()看看这个表达式

2399 > x > 2200
然后取三个值,比如零、2300(应该返回
true
)和10000

由于同一运算符,表达式按外观顺序执行

      x     2399 > x     value   value > 2200     yield     result
--------  ------------  -------  ------------  ----------  --------
      0   2399 >     0    true    true > 2200   1 > 2200     false
   2300   2399 >  2300    true    true > 2200   1 > 2200     false
 100000   2399 > 10000   false   false > 2200   0 > 2200     false
最终结果总是
false
,因为第一部分返回一个布尔值,转换后的值永远不会大于最后一个值

结论

进行以下两个比较:


要获取
开关
语句,需要获取条件部分中的比较值,如果是其他条件,则需要获取其他条件中的比较值。通过直接返回,您可以省略
break
,因为函数以它结尾

函数计算(x){
开关(真){
案例x>=2400:返回“高级大师”;
案例x>=2200:返回“国家大师”;
案例x>=2000:返回“专家”;
案例x>=1800:返回“A类”;
案例x>=1600:返回“B类”;
}
返回“错误输入无效”;
}
函数显示(){
log(“你的排名是:”+calculate(2400));
}

显示()首先,您必须将开关条件从
1799>x>1600
更改为
1799>x&&x>=1600


然后,您应该
返回“Expert”
等,而不是将console.logging输入案例本身,这样函数displayxxx中的concatation实际上会起作用。

首先,您必须将开关条件从
1799>x>1600更改为
1799>x&&x>=1600

然后,您应该
返回“Expert”
等,而不是将console.logging输入案例本身,这样函数displayxxx中的concatation实际上会起作用。

您可以尝试一下吗

function calculatexxx(x)  {

        if (x >= 2400){
            console.log("Senior Master");
           }
           else if (2399 > x > 2200){
            console.log("National Master");
        }
        else if (2199 > x> 2000){
            console.log("Expert");
           }
        else if (1999 > x> 1800){
            console.log("Class A");
            }
        else if (1799 > x> 1600):
            console.log("Class B");
            }
        else{
            console.log("Error input not valid");
            }/////////////

    return(x);

    }
}
function displayxxx() {
    console.log("Your Rank is: " + calculatexxx(2400)); // 

}
displayxxx(); 
你能试试这个吗

function calculatexxx(x)  {

        if (x >= 2400){
            console.log("Senior Master");
           }
           else if (2399 > x > 2200){
            console.log("National Master");
        }
        else if (2199 > x> 2000){
            console.log("Expert");
           }
        else if (1999 > x> 1800){
            console.log("Class A");
            }
        else if (1799 > x> 1600):
            console.log("Class B");
            }
        else{
            console.log("Error input not valid");
            }/////////////

    return(x);

    }
}
function displayxxx() {
    console.log("Your Rank is: " + calculatexxx(2400)); // 

}
displayxxx(); 

您的
return
语句应该在
switch
块之外。我建议您查找1。如何使用
开关
语句。这不是正确的方法-您最好使用
if/else
链。2.比较运算符的工作原理
1799>x>1600
不会检查
x
是否介于
1799
1600
之间。您确实不应该使用范围开关。(而范围检查并不是在做你认为它在做的事情。它是
((2399>x)>2200)
,所以它应该是
(true>2200)
(false>2200)
您的
return
语句应该在
switch
块之外。我建议您查找1.如何使用
switch
语句。这不是正确的方法-最好使用
if/else
链。2.比较运算符如何工作。
1799>x>1600
不检查
x
是否介于
1799
1600
。你真的不应该使用范围开关。(范围检查并不是做你认为它正在做的事情。它是
((2399>x)>2200)
所以它应该是
(true>2200)
(false>2200)
为什么要使用开关?;)哇,我从来没有意识到你可以用switch语句来实现这一点。不知何故,它看起来很错误,但同时也很棒。非常感谢这非常有用,这是作业,所以我需要使用switch语句。为什么要使用switch?;)哇,我从来没有意识到你可以用switch语句来实现这一点。不知何故,它看起来很错误,但同时也很棒。非常感谢,这非常有帮助,这是家庭作业,所以我需要使用switch语句。如果您提供了一个工作代码示例(或者更好,一个工作的可运行代码段),而不仅仅是提示,我会很高兴地向上投票。如果您提供了一个工作代码示例,我会很高兴地向上投票(或者更好,一个可运行的代码段)而不仅仅是提示。感谢您的帮助,我需要使用switch语句。感谢您的帮助,我需要使用switch语句。