Menu
Coddy logo textTech

count, all?, any?, none?

Fa parte della sezione Logica e flusso del percorso Ruby di Coddy. Lezione 24 di 56.

Quattro piccoli metodi Enumerable che rispondono a domande su una raccolta senza costringerti a scrivere un ciclo.

count restituisce il numero di elementi che soddisfano il blocco:

[1, 2, 3, 4, 5].count { |n| n.even? }   # 2
[1, 2, 3, 4, 5].count                    # 5  (senza blocco, conteggio totale)

all? è true quando ogni elemento soddisfa il blocco:

[2, 4, 6].all? { |n| n.even? }    # true
[2, 4, 7].all? { |n| n.even? }    # false

any? è true quando almeno uno lo è:

[1, 2, 3].any? { |n| n.even? }    # true
[1, 3, 5].any? { |n| n.even? }    # false

none? è true quando nessuno di loro lo fa:

[1, 3, 5].none? { |n| n.even? }   # true

I metodi terminano in anticipo: any? si ferma alla prima corrispondenza, all? si ferma al primo errore. Sono economici.

challenge icon

Sfida

Facile

Leggi un elenco di punteggi dei test separati da virgole (numeri interi). Una classe è una classe promossa valida quando:

  • none? dei punteggi è negativo (un test non registrato)
  • all? i punteggi sono al massimo 100
  • any? punteggio è esattamente 100 (almeno un punteggio perfetto)
  • almeno 3 punteggi sono >= 70 (usa count)

Stampa esattamente una riga:

  • Valid: <count> passing quando tutte e quattro le condizioni sono soddisfatte (count è il numero di punteggi >= 70)
  • Invalid altrimenti

Per l'input 72,80,100,65,90: 4 punteggi >= 70, nessuno negativo, tutti <= 100, uno è 100, quindi l'output è Valid: 4 passing.

Per 72,80,90: 3 promossi ma nessun punteggio perfetto, quindi Invalid.

Provalo tu

scores = gets.chomp.split(",").map(&:to_i)

# TODO: combina all?, any?, none? e count per decidere tra Valid e Invalid
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Ruby online