HOWTO · JavaScript

Vérifier si le nombre est compris entre deux valeurs en JavaScript

Dans cet article, nous verrons comment vérifier si un nombre est compris entre deux valeurs en JavaScript.

Sur cette page

Pour vérifier si un nombre se situe entre deux valeurs en JavaScript, comparez-le aux deux bornes et reliez les comparaisons avec l’opérateur logique ET (&&). Par exemple, number > lower && number < upper vérifie si le nombre se trouve strictement à l’intérieur de l’intervalle. Cette version exclut les valeurs égales à l’une ou l’autre borne. Si l’intervalle doit inclure ses deux extrémités, utilisez plutôt >= et <=.

Vérifier si un nombre se situe entre deux valeurs en JavaScript

Un test d’intervalle combine deux comparaisons : le nombre doit être supérieur à la borne inférieure et inférieur à la borne supérieure. L’opérateur && rend la condition entière vraie uniquement si les deux comparaisons sont vraies. Si l’une d’elles est fausse, le nombre se trouve à l’extérieur de l’intervalle strict.

Par exemple, avec des bornes de 10 et 50, la valeur 25 satisfait le test strict. Les valeurs 10 et 50 ne le satisfont pas, car > et < excluent l’égalité. Pour inclure les extrémités, écrivez number >= lower && number <= upper. Choisissez les opérateurs selon la règle dont votre programme a besoin : le mot « entre » ne précise pas à lui seul si les extrémités sont incluses.

Les opérateurs de comparaison de JavaScript produisent des valeurs booléennes lorsque leurs opérandes sont numériques. Consultez la documentation MDN sur les opérateurs de comparaison et les opérateurs logiques pour en savoir plus. Les exemples ci-dessous supposent que la valeur et les deux bornes sont des nombres, et que la borne inférieure est plus petite que la borne supérieure.

Utiliser une instruction if pour tester un intervalle de nombres

Un prédicat nommé permet de réutiliser la règle de l’intervalle. Cet exemple utilise une instruction if pour choisir entre deux messages. Exécutez cet exemple :

Le code et les libellés ou sorties affichés dans cette section restent en anglais.

function isBetween(number, lower, upper) {
  return number > lower && number < upper;
}

const value = 25;
if (isBetween(value, 10, 50)) {
  console.log(`${value} is between 10 and 50`);
} else {
  console.log(`${value} is outside the range`);
}

La fonction renvoie une valeur booléenne ; vous pouvez donc l’utiliser partout où une condition est attendue. Pour la valeur de l’exemple, la première comparaison est 25 > 10 et la seconde est 25 < 50 ; toutes deux sont vraies, donc le bloc if s’exécute. Si l’une des comparaisons est fausse, le contrôle passe à else. La forme avec blocs est pratique lorsqu’une branche contient plusieurs instructions ou lorsque nommer explicitement chaque branche rend la logique plus facile à suivre.

Utiliser l’opérateur ternaire pour tester un intervalle de nombres

Pour choisir brièvement entre deux valeurs, le même prédicat peut être utilisé dans une expression ternaire. Sa condition précède ? ; l’expression située entre ? et : est choisie si la condition est vraie, et celle qui suit : est choisie si elle est fausse.

Le code et les libellés ou sorties affichés dans cette section restent en anglais.

function isBetween(number, lower, upper) {
  return number > lower && number < upper;
}

const value = 25;
const message = isBetween(value, 10, 50)
  ? `${value} is between 10 and 50`
  : `${value} is outside the range`;
console.log(message);

Le comportement aux extrémités est le même que dans l’exemple avec if, car les deux formes utilisent isBetween. Une expression ternaire produit une valeur qui peut être affectée à une variable ou transmise à une autre expression. Gardez chaque branche concise : une longue expression ternaire imbriquée rend la condition et ses résultats plus difficiles à parcourir.

Choisir entre if et l’opérateur ternaire

Utilisez if lorsqu’une branche effectue plusieurs actions, contient une logique plus complexe ou gagne à présenter explicitement le flux de contrôle. Utilisez une expression ternaire pour choisir entre deux valeurs concises, à condition que le résultat reste facile à lire. Les deux formes reposent sur le même prédicat d’intervalle ; modifier les comparaisons du prédicat change donc la règle d’inclusion des extrémités dans les deux cas.

Gardez les bornes dans l’ordre voulu. Si une fonction peut recevoir les bornes dans n’importe quel ordre, remettez-les dans le bon ordre avant la comparaison, par exemple en affectant la plus petite valeur à lower et la plus grande à upper. Vérifiez également que les entrées sont des nombres avant de les comparer : les opérateurs de comparaison de JavaScript peuvent convertir implicitement des valeurs d’autres types, ce qui peut ne pas correspondre à la règle de validation souhaitée par votre application. Pour des données saisies par l’utilisateur, analysez et validez d’abord la valeur et les bornes, puis appliquez le prédicat d’intervalle.