Tracks
/
Ruby
Ruby
/
Übungen
/
Kinobesucher
Kinobesucher

Kinobesucher

Lernübung

Einführung

Der ternäre Operator

Ein ternärer bedingter Ausdruck ist eine kürzere Schreibweise für einfache if/else-Anweisungen. Enthält eine if/else-Anweisung nur zwei Zweige, einen für den Fall, dass die Bedingung wahr ist, und einen für den Fall, dass sie falsch ist, kannst du sie als ternären bedingten Ausdruck neu schreiben.

Ternäre Ausdrücke kombinieren die Symbole ? und : und teilen damit eine Bedingung auf:

condition ? true_branch : false_branch

Der Code links vom ? ist die Bedingung, und der Code rechts enthält die beiden möglichen Zweige, getrennt durch das :. Ist die Bedingung wahr, wird der Code auf der linken Seite des : ausgeführt. Ist die Bedingung falsch, wird der Code auf der rechten Seite des : ausgeführt.

Zum Beispiel:

if traffic_light == 'green'
  cross_the_road
else
  wait
end

lässt sich auch so schreiben:

traffic_light == 'green' ? cross_the_road : wait

Anleitung

In dieser Übung erstellst du die Regeln für die Website eines Kinos.

1. Prüfe, ob ein Kinobesucher Anspruch auf den Seniorenrabatt hat

Das Kino bietet einen Rabatt für „Altersrentner“. Wer 60 oder älter ist, zahlt 10,00 für eine Eintrittskarte. Wer jünger ist, zahlt die vollen 15,00.

Schreibe die Methode Moviegoer#ticket_price mit einem ternären Operator.

Moviegoer.new(21).ticket_price
#=> 15

Moviegoer.new(65).ticket_price
#=> 10

2. Prüfe, ob ein Kinobesucher einen Horrorfilm sehen darf

Das Kino hat ein vereinfachtes System zur Altersprüfung. Wenn du 18 oder älter bist, darfst du Horrorfilme sehen. Wenn du jünger bist, darfst du es nicht.

Implementiere die Methode Moviegoer#watch_scary_movie?. Sie soll zurückgeben, ob jemand den Film sehen darf oder nicht.

Moviegoer.new(21).watch_scary_movie?
#=> true

Moviegoer.new(17).watch_scary_movie?
#=> false

3. Prüfe, ob ein Kinobesucher Anspruch auf kostenloses Popcorn hat

Das Kino hat ein Movie-Club-Programm. Mitglieder bekommen kostenloses Popcorn, wenn sie sich einen Film ansehen.

Implementiere die Methode Moviegoer.claim_free_popcorn!. Wenn ein Zuschauer Mitglied im Movie Club ist, soll er mit seinem kostenlosen Popcorn belohnt werden. Wenn nicht, soll die Methode die Ausnahme UnsupportedOperation auslösen, die oben im Code definiert ist.

Moviegoer.new(21, member: true).claim_free_popcorn!
#=> 🍿

Moviegoer.new(17, member: false).claim_free_popcorn!
#=> Exception was raised! (NotMovieClubMemberError)
Note

In dieser Übung wird von dir erwartet, dass du die Ausnahme UnsupportedOperation für einen bestimmten Gültigkeitsbereich definierst.

Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Ruby Exercism

Bereit, mit Kinobesucher zu starten?

Melde dich bei Exercism an, um Ruby mit 21 Konzepte121 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.