我写了一些 if-else 语句,如下所示:
if (workedDays > 0 && workedDays <= 180)
{
x= 14;
}
if (workedDays > 180 && workedDays <= 540)
{
x= 28;
}
if (workedDays > 540 && workedDays <= 1068)
{
x= 42;
}
else
{
x= 56;
}
我试图将其重写为 switch 语句,如下所示:
switch (workedDays)
{
case (workedDays > 0 && workedDays <= 180):
x=14;
break;
default:
break;
}
但是,我收到错误消息 Cannot implicitly convert type 'bool' to 'int'
。
我该如何解决?
最佳答案
虽然@Jeroen 的switch(true)
答案可能有效,但我建议以下内容以提高可读性:
if (workedDays <= 180)
x = 14;
else if (workedDays <= 540)
x = 28;
else if (workedDays <= 1068)
x = 42;
else
x = 56;
使用 else if
构造,无需仔细检查最小值和最大值。
关于c# - 将 if else 重写为 switch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15786992/