我使用此计数器跟踪按钮已连续按下多少次。 如果按下另一个按钮,则计数器将重置为0。我已经很长时间没有编程了,并且可以确定这可以以更优化的方式编写。
If counterd = 0 Then
money = money + 1400
counterd = counterd + 1
ElseIf counterd = 1 Then
money = money + 1900
counterd = counterd + 1
ElseIf counterd = 2 Then
money = money + 2400
counterd = counterd + 1
ElseIf counterd = 3 Then
money = money + 2900
counterd = counterd + 1
ElseIf counterd > 4 Or counterd = 4 Then
money = money + 3400
counterd = counterd + 1
End If
If money > 16000 Or money = 16000 Then
money = 16000
End If
答案 0 :(得分:6)
您的逻辑几乎可以用以下三行代码表示:
money = money + 1400 + (Math.Min(counterd, 4) * 500)
counterd += 1
If money > 16000 Then money = 16000
或更短的版本:
money = Math.Min(16000, money + 1400 + (Math.Min(counterd, 4) * 500))
counterd += 1
虽然它不是可读性最好的版本,所以您可能希望将第一行分成两到三个步骤/行。
两个版本都使用Math.Min
从两个值中选择最小值。例如,Math.Min(16000, anotherValue)
总是返回anotherValue
,只要它小于16000
。一旦anotherValue
大于16000
,Math.Min
方法将返回16000
。