Une approche plus intelligente consisterait à écrire une fonction qui utilise de nombreuses instructions conditionnelles pour renvoyer des valeurs incrémentielles basées sur différentes plages numériques.
P粉311464935
2023-08-17 23:18:09
<p>J'essaie d'écrire une fonction qui renvoie une valeur spécifique si l'entrée se situe dans une certaine plage de nombres. </p>
<p>Normalement, j'écrirais une série d'instructions if/else if pour accomplir cette tâche. Cependant, j'ai affaire à un grand nombre de plages, donc écrire plus de 30 instructions if/else if semble inefficace. </p>
<p>Supposons que j'ai un nombre minimum et maximum pour une plage globale et que je souhaite la diviser en plages plus petites. Pour chaque plage, je souhaite renvoyer certaines valeurs. Idéalement, la valeur de retour pour chaque plage serait décrémentée d'un nombre fixe. </p>
<p>Pour fournir un contexte, j'essaie de calculer une valeur basée sur le kilométrage en utilisant quelque chose comme ceci. Par exemple, si le kilométrage est compris entre 101 et 120 miles, le taux est égal à 80 % du kilométrage. Le pourcentage diminue à mesure que le kilométrage augmente. De plus, la valeur du pourcentage de diminution peut être un nombre fixe (tel que <code>-0,05</code>)</p>
<pre class="brush:php;toolbar:false;">...
sinon si (m >= 101 && m <= 120) renvoie 0,80
sinon si (m >= 121 && m <= 140) renvoie 0,75
...</pré>
<p>Comme il existe un modèle dans la valeur de retour pour chaque plage, je pense que cela peut être fait d'une meilleure manière que d'écrire un tas d'instructions if/else, mais je ne sais pas exactement comment. Des idées? </p>
Votre exemple n'incrémente pas de 15, donc je suppose que c'est une faute de frappe.
Je vais utiliser une fonction pour le résoudre. Par exemple :