使用整数编写 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 来操作它,但为什么要这样做?)
switch
和 case
用于测试单个值,您的条件需要一个 if
语句。
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 来操作它,但为什么要这样做?)
switch
和 case
用于测试单个值,您的条件需要一个 if
语句。