Vérifier si un nombre entier est dans un intervalle [dupliquer]

Créé le 13 Dec 2022 - Mis à jour le 04 Jul 2023 - Créé par Fabien Berthoux - ruby

Vérifier si un nombre entier est dans un intervalle est une tâche relativement courante. Il y a plusieurs façons de le faire en fonction du langage de programmation et de l'utilisation prévue. Dans certaines applications, la vérification peut être faite avec un simple test d'inclusion, alors que dans d'autres, il peut être nécessaire de vérifier les valeurs limites. Dans le cas d'un intervalle délimité par des valeurs, une vérification séparée des bornes sera nécessaire.

En Ruby, il existe plusieurs méthodes pour vérifier si un entier se trouve dans un intervalle. La méthode la plus simple consiste à utiliser la méthode include? de la classe Range, qui renvoie true ou false en fonction de la présence ou non de l'entier dans l'intervalle. Par exemple :

(1..10).include?(5) # => true
(1..10).include?(11) # => false

Comment déterminer si un nombre entier est strictement inférieur à un intervalle?


Pour déterminer si un nombre entier est strictement inférieur à un intervalle, on peut utiliser la méthode cover? de la classe Range. Cette méthode renvoie true si le nombre est inférieur ou égal à la limite supérieure de l'intervalle et false si le nombre est supérieur à la limite supérieure. Par exemple :

(1..10).cover?(5) # => true
(1..10).cover?(11) # => false

Comment vérifier si un entier est strictement supérieur à un intervalle?


Pour vérifier si un entier est strictement supérieur à un intervalle, on peut utiliser la méthode min de la classe Range pour déterminer la valeur minimale de l'intervalle et comparer ce nombre à l'entier. Si l'entier est supérieur à la valeur minimale, alors il est strictement supérieur à l'intervalle. Par exemple :

(1..10).min < 11 # => true
(1..10).min < 5 # => false

Comment vérifier si un entier est strictement inférieur à un intervalle?


Pour vérifier si un entier est strictement inférieur à un intervalle, on peut utiliser la méthode max de la classe Range pour déterminer la valeur maximale de l'intervalle et comparer ce nombre à l'entier. Si l'entier est inférieur à la valeur maximale, alors il est strictement inférieur à l'intervalle. Par exemple :

(1..10).max > 5 # => true
(1..10).max > 11 # => false

Comment vérifier si un entier est compris entre deux intervalles?


Pour vérifier si un entier est compris entre deux intervalles, on peut utiliser la méthode Range.overlaps? qui compare les bornes des deux intervalles et renvoie true si elles se chevauchent. Par exemple :

(1..10).overlaps?(5..15) # => true
(1..10).overlaps?(11..15) # => false

Comment vérifier si un entier est situé à l'extérieur d'un intervalle?


Pour vérifier si un entier est situé à l'extérieur d'un intervalle, on peut utiliser la méthode Range.exclude_end? qui renvoie true si l'entier est à l'extérieur de l'intervalle, et false s'il est à l'intérieur. Par exemple :

(1..10).exclude_end?(5) # => false
(1..10).exclude_end?(11) # => true