Une condition ternaire est une manière plus courte d'écrire des instructions if/else simples.
Si une instruction if/else ne contient que deux branches, l'une pour le cas où la condition est vraie et l'autre pour le cas où elle est fausse, on peut la réécrire sous la forme d'une condition ternaire.
Les ternaires utilisent une combinaison des symboles ? et : pour découper une condition en deux branches :
condition ? true_branch : false_branch
Le code à gauche du ? est la condition et le code à droite contient les deux branches possibles, séparées par le :.
Si la condition est vraie, le code à gauche du : est exécuté.
Si la condition est fausse, c'est le code à droite du : qui est exécuté.
Par exemple :
if traffic_light == 'green'
cross_the_road
else
wait
end
peut se réécrire ainsi :
traffic_light == 'green' ? cross_the_road : wait
Dans cet exercice, tu vas mettre en place les règles du site web d'un cinéma.
Le cinéma propose une réduction pour les « pensions de vieillesse ». Toute personne de 60 ans ou plus paie 10,00 pour un billet. Toute personne plus jeune paie le tarif plein de 15,00.
Écris la méthode Moviegoer#ticket_price en utilisant une instruction ternaire.
Moviegoer.new(21).ticket_price
#=> 15
Moviegoer.new(65).ticket_price
#=> 10
Le cinéma dispose d'un système simplifié de vérification de l'âge. Si tu as 18 ans ou plus, tu peux regarder des films qui font peur. Si tu es plus jeune, tu ne peux pas.
Implémente la méthode Moviegoer#watch_scary_movie?.
Elle doit renvoyer si une personne est autorisée à regarder le film ou non.
Moviegoer.new(21).watch_scary_movie?
#=> true
Moviegoer.new(17).watch_scary_movie?
#=> false
Le cinéma a un programme Movie Club. Les membres reçoivent du pop-corn gratuit lorsqu'ils regardent n'importe quel film.
Implémente la méthode Moviegoer.claim_free_popcorn!.
Si une personne est membre du Movie Club, elle doit recevoir son pop-corn gratuit.
Dans le cas contraire, la méthode doit lever l'exception UnsupportedOperation définie en haut du code.
Moviegoer.new(21, member: true).claim_free_popcorn!
#=> 🍿
Moviegoer.new(17, member: false).claim_free_popcorn!
#=> Exception was raised! (NotMovieClubMemberError)
Dans cet exercice, on attend de toi que tu définisses l'exception UnsupportedOperation pour une portée spécifique.
Inscris-toi sur Exercism pour apprendre et maîtriser Ruby avec 21 concepts121 exercices, et un vrai mentorat humain, le tout gratuitement.