一個更聰明的方法是編寫一個函數,該函數使用許多條件語句根據不同的數值範圍傳回增量值
P粉311464935
2023-08-17 23:18:09
<p>我正在嘗試編寫一個函數,如果輸入在某個數字範圍內,就傳回特定的值。 </p>
<p>通常情況下,我會寫一系列的if/else if語句來完成這個任務。但是,我正在處理大量的範圍,所以寫出30多個if/else if語句似乎效率低。 </p>
<p>假設我有一個整體範圍的最小和最大數字,並且我想將其分成更小的範圍。對於每個範圍,我想傳回一些值。理想情況下,每個範圍的回傳值將以某個固定數字遞減。 </p>
<p>為了提供背景,我正在嘗試使用類似這樣的方法來根據里程數計算一個值。例如,如果里程數在101-120英里之間,費率等於里程數的80%。隨著里程數的增加,百分比會遞減。而且,百分比遞減的數值可以是某個固定數字(例如<code>-0.05</code>)</p>
<pre class="brush:php;toolbar:false;">...
else if (m >= 101 && m <= 120) return 0.80
else if (m >= 121 && m <= 140) return 0.75
...</pre>
<p>由於每個範圍的返回值存在一種模式,我認為可以以比寫一堆if/else語句更好的方式來完成,但我不確定具體如何做到。有什麼想法嗎? </p>
你的例子沒有以15遞增;所以,我假設那是打字錯誤。
我會使用一個函數來解決。 例如: