Track
/
Ruby
Ruby
/
Esercizi
/
Spettatore cinematografico
Spettatore cinematografico

Spettatore cinematografico

Esercizio di apprendimento

Introduzione

L'operatore ternario

Un condizionale ternario è un modo più breve per scrivere semplici istruzioni if/else. Se un'istruzione if/else contiene solo due rami, uno per quando la condizione è vera e uno per quando è falsa, può essere riscritta come condizionale ternario.

I ternari usano una combinazione dei simboli ? e : per separare un condizionale:

condition ? true_branch : false_branch

Il codice a sinistra del ? è la condizione, mentre il codice a destra contiene i due rami possibili, separati dal :. Se la condizione è vera, viene eseguito il codice a sinistra del :. Se la condizione è falsa, viene eseguito il codice a destra del :.

Ad esempio:

if traffic_light == 'green'
  cross_the_road
else
  wait
end

può essere riscritto così:

traffic_light == 'green' ? cross_the_road : wait

Istruzioni

In questo esercizio costruirai le regole per il sito web di un cinema.

1. Verifica se uno spettatore ha diritto allo sconto per gli anziani

Il cinema offre uno sconto per la «pensione di vecchiaia». Chi ha 60 anni o più paga 10.00 per un biglietto. Chi è più giovane paga l'intero prezzo di 15.00.

Scrivi il metodo Moviegoer#ticket_price usando un operatore ternario.

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

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

2. Verifica se uno spettatore può vedere i film horror

Il cinema ha un sistema semplificato di verifica dell'età. Se hai 18 anni o più, puoi guardare i film horror. Se sei più giovane, non puoi.

Implementa il metodo Moviegoer#watch_scary_movie?. Deve restituire se una persona è autorizzata a guardare il film oppure no.

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

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

3. Verifica se uno spettatore ha diritto ai popcorn gratis

Il cinema ha un programma chiamato Movie Club. I membri ricevono i popcorn gratis quando guardano qualsiasi film.

Implementa il metodo Moviegoer.claim_free_popcorn!. Se lo spettatore è membro del Movie Club, deve ricevere in premio i suoi popcorn gratis. Se non lo è, il metodo deve sollevare l'eccezione UnsupportedOperation definita all'inizio del codice.

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

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

In questo esercizio, devi definire l'eccezione UnsupportedOperation per uno scope specifico.

Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Ruby Exercism

Vuoi iniziare Spettatore cinematografico?

Iscriviti a Exercism per imparare e padroneggiare Ruby con 21 concetti121 esercizi e il mentoring di persone reali, tutto gratis.