Menu
Coddy logo textTech

Inline if / unless

Część sekcji Logika i przepływ programu ścieżki Ruby w Coddy. Lekcja 41 z 56.

Ruby pozwala umieścić if i unless na końcu pojedynczej instrukcji jako jednoliniowy modyfikator. Czyta się to niemal jak tekst po angielsku.

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

To jest to samo co:

if age >= 18
  puts "Adult"
end

unless saved
  puts "Save your work"
end

Zapis inline sprawdza się przy warunkach ochronnych na początku metody lub przy jednorazowych aktualizacjach warunkowych wewnątrz pętli:

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

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

Podobnie jak w przypadku operatora warunkowego, używaj modyfikatorów w jednej linii w krótkich instrukcjach. Jeśli ciało instrukcji miałoby więcej niż jedną linię, napisz zamiast tego prawdziwy blok if.

challenge icon

Wyzwanie

Łatwy

Wczytaj listę liczb całkowitych rozdzielonych przecinkami. Dla każdej liczby wypisz jeden wiersz, ale tylko wtedy, gdy liczba jest różna od zera:

  • Wypisz positive: <n> jeśli n > 0
  • Wypisz negative: <n> chyba że n >= 0

Oba wiersze muszą używać formy modyfikatora inline (bez bloku if i bez else). Po pętli wypisz Skipped zeros: <count>, gdzie liczba oznacza liczbę zer, również obliczoną bez bloku if (użyj count).

Dla wejścia 3,-2,0,5,0 wynikiem jest:

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

Spróbuj swoich sił

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

# TODO: wypisz każdą liczbę, używając jednolinijkowego `if` / `unless`
# TODO: wypisz Skipped zeros: <n>, używając count
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator Ruby online