Menu
Coddy logo textTech

if / unless inline

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

Ruby ti permette di mettere if e unless alla fine di una singola istruzione, come modificatore su una sola riga. Si legge quasi come l’italiano.

puts "Adult" if age >= 18
puts "Save your work" unless saved

È lo stesso di:

if age >= 18
  puts "Adult"
end

unless saved
  puts "Save your work"
end

La forma inline è ideale per i controlli di guardia all'inizio di un metodo o per aggiornamenti condizionali occasionali all'interno di un ciclo:

return if name.nil? || name.empty?

counts = Hash.new(0)
words.each do |w|
  counts[w] += 1 unless w.start_with?("#")
end

Come con l’operatore ternario, usa i modificatori inline per le istruzioni brevi. Se il corpo occupasse più di una singola riga, scrivi invece un vero blocco if.

challenge icon

Sfida

Facile

Leggi un elenco di numeri interi separati da virgole. Per ogni numero, stampa una riga, ma solo se il numero è diverso da zero:

  • Stampa positive: <n> se n > 0
  • Stampa negative: <n> a meno che n >= 0

Entrambe le righe devono usare la forma con modificatore inline (nessun blocco if, nessun else). Dopo il ciclo, stampa Skipped zeros: <count>, dove il conteggio è il numero di zeri, calcolato anch'esso senza un blocco if (usa count).

Per l'input 3,-2,0,5,0, l'output è:

positive: 3
negative: -2
positive: 5
Skipped zeros: 2

Provalo tu

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

# TODO: stampa usando `if` / `unless` inline per ogni numero
# TODO: stampa Skipped zeros: <n> usando count
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