Operator trójargumentowy
Część sekcji Logika i przepływ programu ścieżki Ruby w Coddy. Lekcja 40 z 56.
Operator trójargumentowy to jednolinijkowy skrót dla if/else, który zwraca wartość. Składnia to condition ? value_if_true : value_if_false.
age = 20
status = age >= 18 ? "Eligible" : "Not Eligible"
puts status # EligibleTo to samo, co napisanie:
status = if age >= 18
"Eligible"
else
"Not Eligible"
endUżywaj operatora warunkowego, gdy obie gałęzie zwracają krótkie wartości. Jeśli którakolwiek gałąź wymaga więcej niż jednego wyrażenia, użyj zwykłego if/else: umieszczanie zbyt dużej ilości kodu w operatorze warunkowym utrudnia jego czytanie.
Możesz używać go bezpośrednio wewnątrz innych wyrażeń, w tym interpolacji:
count = 1
puts "#{count} item#{count == 1 ? "" : "s"}" # 1 przedmiot
count = 5
puts "#{count} item#{count == 1 ? "" : "s"}" # 5 przedmiotówWyzwanie
ŁatwyWczytaj z wejścia liczbę całkowitą n. Używając operatora trójargumentowego (bez bloków if/else), wypisz dokładnie:
<n> is <label>gdzie label ma wartość:
positive, gdyn > 0negative, gdyn < 0zero, gdyn == 0
Podpowiedź: użyj zagnieżdżonego operatora trójargumentowego: condition ? a : (other_condition ? b : c).
Dla wejścia 5 wynikiem jest 5 is positive. Dla 0 wynikiem jest 0 is zero.
Spróbuj swoich sił
n = gets.to_i
# TODO: użyj wyrażenia trójargumentowego, aby utworzyć etykietę, a następnie użyj puts
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
1Łańcuchy znaków w szczegółach
Przegląd metod łańcuchów znakówInterpolacja łańcuchów znakówIterowanie po łańcuchach znakówDzielenie i łączeniePowtórka – Tkacz łańcuchów znaków4Bloki, procki i lambdy
Czym jest blok?do..end a nawiasy klamroweSłowo kluczowe yieldParametry blokuProcki i lambdyPodsumowanie — własny iterator7Hashe, część 2
Hash.new z wartościami domyślnymiIterowanie po haszachZagnieżdżone haszeŁączenie i przekształcaniePowtórka — licznik częstotliwości10Projekt – ewidencja uczniów
Przegląd projektuDodawanie ucznia5Potęga Enumerable
Select i RejectŁączenie wywołań mapReduce / Injectcount, all?, any?, none?group_by i partitionsort_by, min_by, max_byPodsumowanie — potok danych8Zaawansowane podejmowanie decyzji
case z klasami i wyrażeniami regularnymiwhen z wieloma wartościamiOperator trójargumentowyInline if / unlessPowtórka – klasyfikator ocenPoćwicz samodzielnie: Kompilator Ruby online