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
语句编写此信息,但似乎无法弄清楚如何
答案 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)
你不能在这里使用开关(你可以用默认情况操作它,但为什么这样做呢?)
switch
和case
用于测试单个值,您的条件需要if
语句。