Instructions
L'objectif de cet exercice est de comprendre comment l'ordre d'évaluation des opérations dépend de la précédence et de l'associativité des opérateurs. Tu dois ajouter des parenthèses dans les expressions pour clarifier l'ordre d'évaluation.
Partie 1 : Ajouter des parenthèses dans les expressions
- Expression : 1 + 3 * 4 - 2 - 5, Question : Quelle est l'expression avec des parenthèses qui montrent l'ordre correct des opérations ? Indice : L'addition et la soustraction sont de plus basse priorité que la multiplication.
- Expression : v = a - i++; Question : Où doivent être placées les parenthèses pour montrer l'ordre d'évaluation de cette expression ? Indice : L'opérateur post-incrémentation i++ a une priorité plus élevée que l'opérateur de soustraction.
- Expression : u = a * b - c / d + k(f), Question : Comment ajouter des parenthèses pour montrer l'ordre d'évaluation dans cette expression avec des opérations arithmétiques et un appel de méthode ?Indice : La multiplication et la division ont la même priorité, mais elles sont exécutées de gauche à droite.
Partie 2 : Compléter les expressions
- Expression : x = 10 + 5 * 3 - 4 / 2; Compléter avec des parenthèses.
- Expression : y = a - (b + c * d) / (e - f); Compléter avec des parenthèses.
- Expression : z = g++ * (h - i) / j + k; Compléter avec des parenthèses.
Partie 3 : Questions
Q1 : Quelle est la différence entre la précédence et l'associativité des opérateurs ?
Q2 : Pourquoi est-il important de connaître l'ordre d'évaluation des opérateurs dans une expression complexe ?
Q3 : Que se passe-t-il si on oublie d'utiliser les parenthèses dans une expression comme a * b + c / d ?
Partie 4 : bonus
Réécris l'expression m = (n + p) * q - r++ / s + t en changeant l'ordre des parenthèses tout en conservant le même résultat. Donne un exemple où ne pas utiliser de parenthèses entraîne un résultat incorrect en Java, et explique pourquoi.