Ich versuche eine Funktion zu schreiben, die einen bestimmten Wert zurückgibt, wenn die Eingabe innerhalb eines bestimmten Zahlenbereichs liegt.
Normalerweise würde ich eine Reihe von if/else if-Anweisungen schreiben, um diese Aufgabe zu erfüllen. Allerdings habe ich es mit einer großen Anzahl von Bereichen zu tun, sodass das Schreiben von mehr als 30 if/else if-Anweisungen ineffizient erscheint.
Angenommen, ich habe eine Mindest- und Höchstzahl für einen Gesamtbereich und möchte ihn in kleinere Bereiche aufteilen. Für jeden Bereich möchte ich einige Werte zurückgeben. Im Idealfall würde der Rückgabewert für jeden Bereich um eine feste Zahl dekrementiert.
Um den Kontext bereitzustellen, versuche ich, mit etwas wie diesem einen Wert basierend auf der Kilometerleistung zu berechnen. Liegt der Kilometerstand beispielsweise zwischen 101 und 120 Meilen, beträgt der Satz 80 % des Kilometerstands. Der Prozentsatz nimmt mit zunehmender Kilometerleistung ab. Darüber hinaus kann der Wert der prozentualen Verringerung eine feste Zahl sein (z. B. -0,05
)
... sonst wenn (m >= 101 && m <= 120) 0,80 zurückgeben sonst wenn (m >= 121 && m <= 140) 0,75 zurückgeben ...
Da es für jeden Bereich ein Muster im Rückgabewert gibt, denke ich, dass dies besser möglich ist, als eine Reihe von if/else-Anweisungen zu schreiben, aber ich weiß nicht genau, wie. Irgendwelche Ideen?
你的例子没有以15递增;所以,我假设那是一个打字错误。
我会使用一个函数来解决。 例如: