使用整数编写switch语句

时间:2015-02-07 21:39:41

标签: c# switch-statement

if (intDaysOverdue <= 30)
{
            decInterestRate = 0m;
}
else if (intDaysOverdue >= 30 && intDaysOverdue <= 59)
{
            decInterestRate = .5m;
}
else if (intDaysOverdue >= 60 && intDaysOverdue <= 89)
{
            decInterestRate = .10m;
}
else if (intDaysOverdue >= 90)
{
            decInterestRate = .15m;
} 

我需要使用switch语句编写此信息,但似乎无法弄清楚如何

2 个答案:

答案 0 :(得分:1)

您无法使用switch执行所需操作,但可以将其简化为:

if (intDaysOverdue <= 30)
    decInterestRate = 0m;
else if (intDaysOverdue <= 59)
    decInterestRate = .5m;
else if (intDaysOverdue <= 89)
    decInterestRate = .10m;
else 
    decInterestRate = .15m;

您的>= 30>= 60条件不需要,因为先前的if语句已经是正确的。

Switch / Case更适合特定值,而不是范围。这个 if语句的用途。

如果您的利率每30天增加0.5,与评论中建议的@EZI类似,您可以进一步简化代码:

decInterestRate = ((int)Math.Min(intDaysOverdue, 90) /30) * .5;

答案 1 :(得分:0)

你不能在这里使用开关(你可以用默认情况操作它,但为什么这样做呢?) switchcase用于测试单个值,您的条件需要if语句。