Η τριαδική συνθήκη είναι ένας πιο σύντομος τρόπος να γράψεις απλές εντολές if/else.
Αν μια εντολή if/else περιέχει μόνο δύο κλάδους, έναν για όταν η συνθήκη είναι αληθής και έναν για όταν είναι ψευδής, μπορεί να ξαναγραφτεί ως τριαδική συνθήκη.
Οι τριαδικές συνθήκες χρησιμοποιούν έναν συνδυασμό των συμβόλων ? και : για να χωρίσουν μια συνθήκη:
condition ? true_branch : false_branch
Ο κώδικας στην αριστερή πλευρά του ? είναι η συνθήκη και ο κώδικας στα δεξιά του περιέχει τους δύο πιθανούς κλάδους, χωρισμένους με το :.
Αν η συνθήκη είναι αληθής, εκτελείται ο κώδικας στην αριστερή πλευρά του :.
Αν η συνθήκη είναι ψευδής, τότε εκτελείται ο κώδικας στα δεξιά του :.
Για παράδειγμα:
if traffic_light == 'green'
cross_the_road
else
wait
end
μπορεί να ξαναγραφτεί ως:
traffic_light == 'green' ? cross_the_road : wait
Σε αυτή την άσκηση θα φτιάξεις τους κανόνες για την ιστοσελίδα ενός κινηματογράφου.
Ο κινηματογράφος προσφέρει έκπτωση για τις "συντάξεις γήρατος". Όποιος είναι 60 ετών ή μεγαλύτερος πληρώνει 10.00 για εισιτήριο. Όποιος είναι μικρότερος πληρώνει το πλήρες ποσό των 15.00.
Γράψε τη μέθοδο Moviegoer#ticket_price χρησιμοποιώντας μια τριαδική εντολή.
Moviegoer.new(21).ticket_price
#=> 15
Moviegoer.new(65).ticket_price
#=> 10
Ο κινηματογράφος έχει ένα απλοποιημένο σύστημα επαλήθευσης ηλικίας. Αν είσαι 18 ή μεγαλύτερος, μπορείς να δεις τρομακτικές ταινίες. Αν είσαι μικρότερος, δεν μπορείς.
Υλοποίησε τη μέθοδο Moviegoer#watch_scary_movie?.
Θα πρέπει να επιστρέφει αν κάποιος επιτρέπεται να δει την ταινία ή όχι.
Moviegoer.new(21).watch_scary_movie?
#=> true
Moviegoer.new(17).watch_scary_movie?
#=> false
Ο κινηματογράφος έχει ένα πρόγραμμα Movie Club. Τα μέλη παίρνουν δωρεάν ποπ κορν όταν δουν οποιαδήποτε ταινία.
Υλοποίησε τη μέθοδο Moviegoer.claim_free_popcorn!.
Αν ο θεατής είναι μέλος του Movie Club, θα πρέπει να ανταμείβεται με το δωρεάν ποπ κορν του.
Αν δεν είναι, η μέθοδος θα πρέπει να πετάει την εξαίρεση UnsupportedOperation που ορίζεται στην αρχή του κώδικα.
Moviegoer.new(21, member: true).claim_free_popcorn!
#=> 🍿
Moviegoer.new(17, member: false).claim_free_popcorn!
#=> Exception was raised! (NotMovieClubMemberError)
Σε αυτή την άσκηση, αναμένεται να ορίσεις την εξαίρεση UnsupportedOperation για μια συγκεκριμένη εμβέλεια.
Γράψου στο Exercism για να μάθεις και να κατακτήσεις Ruby με 21 έννοιες121 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.