Retour au cours

opérateurs : arithmétique, comparaison et logique

Objectifs

  • Utiliser les opérateurs arithmétiques pour effectuer des calculs.
  • Comparer des valeurs avec les opérateurs de comparaison.
  • Combiner des conditions avec les opérateurs logiques.
  • Comprendre la différence entre la division entière et la division flottante.

Les opérateurs sont les symboles qui vous permettent d’effectuer des opérations sur vos variables et vos valeurs.

Opérateurs Arithmétiques

Ce sont les opérateurs mathématiques de base.

OpérateurNomExempleRésultat
+Addition5 + 27
-Soustraction5 - 23
*Multiplication5 * 210
/Division5 / 22 (division entière)
%Modulo5 % 21 (reste de la division)
**Exposant5 ** 225 (5 à la puissance 2)

Division entière vs. flottante

Attention : si vous divisez deux nombres entiers (Integer), Ruby effectue une division entière et tronque le résultat. Pour obtenir un résultat à virgule flottante, au moins un des nombres doit être un Float.

10 / 3      # => 2
10.0 / 3    # => 3.3333...
10 / 3.0    # => 3.3333...

Opérateurs de Comparaison

Ces opérateurs comparent deux valeurs et renvoient toujours un booléen (true ou false).

OpérateurSignificationExempleRésultat
==Égal à5 == 5true
!=Différent de"a" != "b"true
>Strictement supérieur à5 > 2true
<Strictement inférieur à5 < 2false
>=Supérieur ou égal à5 >= 5true
<=Inférieur ou égal à5 <= 2false

Ces opérateurs sont le cœur des conditions if.

Opérateurs Logiques

Ils permettent de combiner plusieurs expressions booléennes.

  • && (ET logique) : Renvoie true uniquement si les deux côtés sont vrais.

    age = 25
    est_etudiant = true
    
    # Est-il majeur ET étudiant ?
    age >= 18 && est_etudiant # => true
  • || (OU logique) : Renvoie true si au moins un des deux côtés est vrai.

    role = "user"
    
    # Est-il admin OU modo ?
    role == "admin" || role == "moderateur" # => false
  • ! (NON logique) : Inverse la valeur de vérité d’une expression.

    is_active = false
    
    !is_active # => true

&& vs and

Ruby propose aussi des versions textuelles (and, or). Elles n’ont pas la même priorité que && et ||. Pour éviter la confusion, une bonne pratique pour débuter est de toujours utiliser && et || pour les opérations logiques booléennes.

Bonnes pratiques

  • Utilisez des parenthèses () pour clarifier l’ordre des opérations dans des calculs ou des conditions complexes, même si ce n’est pas toujours nécessaire. (a + b) * c est plus lisible.
  • Pour obtenir un résultat flottant d’une division, assurez-vous qu’au moins un des nombres est un Float (ex: nombre.to_f / autre_nombre).

Exercices

Ces exercices sont parfaits pour la console irb.

  1. Calculs :

    • Quel est le reste de la division de 100 par 7 ?
    • Calculez 3 à la puissance 4.
  2. Comparaisons :

    • Écrivez une expression qui vérifie si 100 est un nombre pair. (Indice : utilisez le modulo %).
    • Écrivez une expression qui vérifie si la chaîne de caractères "ruby" est différente de "python".
  3. Logique combinée :

    • Déclarez une variable temperature = 15 et une variable pleut = true.
    • Écrivez une condition qui est vraie s’il fait plus de 10 degrés ET qu’il ne pleut pas. Le résultat devrait être false.
    • Écrivez une condition qui est vraie si la température est en dessous de 0 OU au-dessus de 30.