大于或小于变量的切换大小写

时间:2019-04-12 13:05:04

标签: javascript

我使用此代码输入数字,并使用小于和大于开关的情况下的数字进行比较以获取正确的结果,只有默认设置有效

var sum=prompt("enter sum:");

// sum=50;
switch(sum)
{
case sum=0:
  alert("sucess");
  break;
case sum>50:
  alert("also sucess");
  break;
case sum<50:
  alert("failed");
default:
 alert("there is errorrrr");

}

3 个答案:

答案 0 :(得分:2)

您可以使用switch (true)

switch (true) {
  case sum === 0:
    alert('success');
    break;
  case sum < 50:
    alert('also success');
    break;
  case sum > 50:
    alert('failed');
    break;
  default:
    alert('there is an error.')
    break;
}

请注意,在您的代码中,第一种情况实际上是分配,并修改sum以将其设置为0。

答案 1 :(得分:-1)

实际上,它不起作用,正如您期望的那样,将switch语句与所有情况进行比较,例如:

switch (something)
{
    case 1: // something == 1 ?
    // ....
}

实际上,您所写的内容被解释为

var sum = 42;
switch(sum)
{
    case sum < 50: // sum == sum < 50 ? -> 42 == 42 < 50 ? -> 42 == true ? false !
    // ...

相反,您可以使用switch true语句。

//        v-------     convert the prompt to a numeric value
let sum = + prompt("enter sum:");

switch(true)
{
//         VV----- notice the double equal
  case sum == 0:       // true == sum == 0 ? 
    alert("sucess");
    break;
  case sum > 50:
    alert("also sucess");
    break;
  case sum < 50:
    alert("failed");
    break;     //  <---- You forgot a break; there
  default:
    alert("there is errorrrr");
    break;
}

答案 2 :(得分:-1)

您的想法很好

sum=20;
switch(true)
{
case 50:
  alert("sucess");
  break;
case (sum>50):
  alert("also sucess");
  break;
case sum<50:
  alert("failed");
 break;        
default:
 alert("there is errorrrr");

}