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