使用整数编写 switch 语句

Writing switch statements using integers

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 语句来编写此信息,但似乎无法弄清楚如何

你不能用 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;

你不能在这里使用 switch(你可以使用 default case 来操作它,但为什么要这样做?) switchcase 用于测试单个值,您的条件需要一个 if 语句。