Javascript中的Switch语句每次都返回默认值,但不返回大小写
我试图解决问题的条件3从。问题是,活动要求只使用ifmachineActive中的Switch语句。我使用if-else解决了这个问题,但是一旦我尝试使用switch语句,控制台就会显示我设置的默认消息,不管score变量得到什么值,一定是出了问题。每当我更改案例时,只会显示默认消息 在这种情况下,使用switch语句的正确方法是什么?if-else是最合适的选择,但这次我想坚持任务的规则Javascript中的Switch语句每次都返回默认值,但不返回大小写,javascript,if-statement,switch-statement,Javascript,If Statement,Switch Statement,我试图解决问题的条件3从。问题是,活动要求只使用ifmachineActive中的Switch语句。我使用if-else解决了这个问题,但是一旦我尝试使用switch语句,控制台就会显示我设置的默认消息,不管score变量得到什么值,一定是出了问题。每当我更改案例时,只会显示默认消息 在这种情况下,使用switch语句的正确方法是什么?if-else是最合适的选择,但这次我想坚持任务的规则 let response; let score = 75; let machineActive = tru
let response;
let score = 75;
let machineActive = true;
if(machineActive) {
switch(score){
case (score<=100 && score>=90):
response = "What an amazing score! Did you cheat? Are you for real?";
break;
case (score<=89 && score>=70):
response = "That\'s a great score, you really know your stuff.";
break;
case (score<=69 && score>=40):
response = "You did a passable job, not bad!";
break;
case (score<=39 && score>=20):
response = "You know some things, but it's a pretty bad score. Needs improvement.";
break;
case (score<=19 && score>=0):
response = "That was a terrible score — total fail!";
break;
default:
response = "Something must be wrong";
}
} else {
response = 'The machine is turned off. Turn it on to process your score.';
}
将switchscore{更改为switchtrue{
它试图将分数=90===与其不相等的分数相等。将switchscore{更改为switchtrue{
它试图将分数=90==与它没有的分数相等。您需要
switch (true) {
因为您正在检查布尔值
通过使用score,唯一具有
case score:
这样就行了,因为switch使用了严格的比较
然后,您可以省略所有parentese,并通过对上面的off值使用filte分层,然后使用较小的值,最后使用负值的默认值来使用fall-through
让我们回应;
让分数=75;
让machineActive=true;
如果是机械反应的{
切换为真{
病例评分>100分:
反应=一定是出了什么问题;
打破
病例评分>=90分:
回答=多么惊人的分数!你作弊了吗?你是真的吗?;
打破
病例评分>=70:
回答=这是一个伟大的分数,你真的知道你的东西。;
打破
病例评分>=40:
回答=你做得还可以,还不错!;
打破
病例评分>=20:
回答=你知道一些事情,但这是一个相当糟糕的分数。需要改进。;
打破
案例得分>=0:
回答=那是一个糟糕的分数-完全失败!;
打破
违约:
反应=一定是出了什么问题;
}
}否则{
响应='机器已关闭。打开它以处理您的分数';
}
console.logresponse;您需要
switch (true) {
因为您正在检查布尔值
通过使用score,唯一具有
case score:
这样就行了,因为switch使用了严格的比较
然后,您可以省略所有parentese,并通过对上面的off值使用filte分层,然后使用较小的值,最后使用负值的默认值来使用fall-through
让我们回应;
让分数=75;
让machineActive=true;
如果是机械反应的{
切换为真{
病例评分>100分:
反应=一定是出了什么问题;
打破
病例评分>=90分:
回答=多么惊人的分数!你作弊了吗?你是真的吗?;
打破
病例评分>=70:
回答=这是一个伟大的分数,你真的知道你的东西。;
打破
病例评分>=40:
回答=你做得还可以,还不错!;
打破
病例评分>=20:
回答=你知道一些事情,但这是一个相当糟糕的分数。需要改进。;
打破
案例得分>=0:
回答=那是一个糟糕的分数-完全失败!;
打破
违约:
反应=一定是出了什么问题;
}
}否则{
响应='机器已关闭。打开它以处理您的分数';
}
console.logresponse;switch语句用于确定是否有任何事例与传入的变量相等。您传入的是一个数字,因此没有一个布尔事例与该数字相等。您需要传入true,并查看是否有任何事例的计算结果为true 用于与表达式匹配的case子句。如果表达式与指定的值匹配,则case子句中的语句将一直执行,直到switch语句结束或中断。from 此外,案例是按顺序评估的,因为您有中断,所以不需要检查每个案例的范围上限 切换为真{ 病例评分>100分: 回答=你肯定作弊了。你一定去了https://www.stackoverflow.com 为了得到所有这些问题的答案。 打破 病例评分>=90分: 回答=多么惊人的分数!你作弊了吗?你是真的吗? 打破 病例评分>=70: 回答=这是一个伟大的分数,你真的知道你的东西。 打破 病例评分>=40: 回复=你做得还可以,还不错! 打破 病例评分>=20: 回应= 你知道一些事情,但这是一个相当糟糕的分数。需要改进。 打破 案例得分>=0: 回答=那是一个糟糕的分数-完全失败! 打破 违约: 回答=一定是出了什么问题 }
switch语句用于确定任何情况是否等于传入的变量。您正在传入num ber,所以没有一个布尔值大小写等于这个数字。您将希望传入true,并查看是否有任何案例评估为true 用于匹配表达式的case子句。如果表达式与指定的valueN匹配,则执行case子句中的语句,直到switch语句结束或中断。从 此外,案例是按顺序评估的,因为您有中断,所以不需要检查每个案例的范围上限 切换为真{ 病例评分>100分: 回答=你肯定作弊了。你一定去了https://www.stackoverflow.com 为了得到所有这些问题的答案。 打破 病例评分>=90分: 回答=多么惊人的分数!你作弊了吗?你是真的吗? 打破 病例评分>=70: 回答=这是一个伟大的分数,你真的知道你的东西。 打破 病例评分>=40: 回复=你做得还可以,还不错! 打破 病例评分>=20: 回应= 你知道一些事情,但这是一个相当糟糕的分数。需要改进。 打破 案例得分>=0: 回答=那是一个糟糕的分数-完全失败! 打破 违约: 回答=一定是出了什么问题 }
这与重复问题的答案有何不同?它只需要一次检查,并使用从最大到最小的条件顺序。thinkable也是另一个顺序。这与重复问题的答案有何不同?它只需要一次检查,并对从最大到最小的条件使用一个顺序。thinkable也是另一个顺序。switch语句用于确定任何情况是否等于switch语句中传递的变量用于确定任何情况是否等于传递的变量