如何在case语句中使用范围?
本文关键字:使用范围 语句 case | 更新日期: 2023-09-27 18:13:03
我想知道我在这里做错了什么:
string grade;
switch (percentageMark)
{
case (90 - 100):
grade = "A*";
break;
case (80 - 89):
grade = "A";
break;
case (70 - 79):
grade = "B";
break;
case (60 - 69):
grade = "C";
break;
case (50 - 59):
grade = "D";
break;
case (40 - 49):
grade = "E";
break;
case (0 - 39):
grade = "U";
break;
}
我得到的错误说"标签'case -9:'已经出现在这个开关语句中",但只在案例3,4,5和6。谁能告诉我为什么我得到这些错误
不能设置大小写
必须使用多个大小写,如:
case 90:
case 91:
case 92:
case 93:
case 94:
...
...
case:100:
grade = "A*";
或者你也可以使用if语句来应用range:
if(percentageMark >= 90 && percentageMark <=100)
grade = "A*";
正如Ehsan已经指出的,您不能在case中使用range。在您的情况下,看起来使用if..else
而不是switch case
会更好。
:
if(percentageMark >= 90 && percentageMark <=100)
grade = "A*";
else if(percentageMark >= 80)
grade = "A";
else if(percentageMark >= 70)
grade = "B";
else if(percentageMark >= 60)
grade = "C";
else if(percentageMark >= 50)
grade = "D";
else if(percentageMark >= 40)
grade = "E";
else
grade = "U";
遗憾的是,c#的开关不支持范围。
你必须使用if和else if。
在你的代码中应该是这样的:
if (value >= 90 && value <= 100)
{
// Your code
}
else if (value >= 80 && value < 90)
{
// Your code
}
else if (value >= 70 && value < 80)
{
// Your code
}
等。
当然,如果你想使用一个开关,并且分数总是在0到100之间,那么你可以使用这个开关:
switch(grade)
{
case grade > 90:
// A*
break;
case grade > 80:
// B
break;
}
等。