如何在 case 语句中使用范围 C#
How do I use ranges in case statement c#
我想知道我做错了什么:
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;
}
我收到错误说 "The label 'case -9:' already occurs in this switch statement",但仅在情况 3、4、5 和 6 中出现。有人能告诉我为什么会收到这些错误吗
你不能有范围以防万一。
您必须使用多个大小写,例如:
case 90:
case 91:
case 92:
case 93:
case 94:
...
...
case:100:
grade = "A*";
或者您可以使用 if 语句来应用范围:
if(percentageMark >= 90 && percentageMark <=100)
grade = "A*";
正如 Ehsan 已经指出的,您不能在大小写内使用范围。在你的情况下,看起来使用 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;
}
等等
我想知道我做错了什么:
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;
}
我收到错误说 "The label 'case -9:' already occurs in this switch statement",但仅在情况 3、4、5 和 6 中出现。有人能告诉我为什么会收到这些错误吗
你不能有范围以防万一。
您必须使用多个大小写,例如:
case 90:
case 91:
case 92:
case 93:
case 94:
...
...
case:100:
grade = "A*";
或者您可以使用 if 语句来应用范围:
if(percentageMark >= 90 && percentageMark <=100)
grade = "A*";
正如 Ehsan 已经指出的,您不能在大小写内使用范围。在你的情况下,看起来使用 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;
}
等等