[
Ruby] Instrukcje/wyrażenia
warunkowe
Jak w opisie wcześniej napisałem, Ruby jest elastycznym językiem
skryptowym, jeszcze raz pokażę to w tym dziale ;)
if
a==
10
[
kod
]
elsif
a==
9
[
kod
]
else
[
kod
]
end
Trzeba pamiętać o takiej składni, na końcu instrukcji warunkowej stawiane
jest
end, tak samo jest w pętlach, funkcjach, definicjach…
Przykład “życiowy”:
x=
10
if
x
<
10
puts
"x jest mniejsze od 10"
elsif
x==
10
puts
"x jest rowne 10"
elsif
x==
12
puts
"x jest równe 12"
else
puts
"x ma jakąś nieprzewidzianą wartość"
end
Miałem pokazać elastyczność? Proszę:
OK=
1
puts
"Jest OK"
if
OK==
1
Wyrażenie warunkowe:
ma postać:
case
zmienna
when
wartość
1
[
kod
]
when
watość
2
[
kod
]
when
wartość
3
[
kod
]
else
[
kod
]
end
W praktyce to wygląda tak:
#
kod sprawdza czy jest OK
OK=
1
#ta zmienna będzie sprawdzana
case
OK
when
1
puts
"JEST OK!"
when
!
1
puts
"nie jest OK :("
else
puts
"jest jeszcze inaczej ;/"
end
Dopóki, po polsku dopóki jest raczej kojarzone z pętlami, tutaj:
unless oznacza if not
OK=
123082507198571985867160891
#
zmienna OK ma jakąś śmieszną wartość
unless
OK==
2
#jeśli OK jest RÓŻNE od 2:
puts
"OK!=2"
#wyświetl, że OK jest różne od 2
end
Operator trójargumentowy (którego nigdy nie używam :> ) ?:
Ma taką składnię:
[
warunek
]
?
[
co jeśli jest spełniony
]
:
[
co jeśli nie jest spełniony
]
[
kod
]
A w zastosowaniu wygląda tak:
OK=
0
OK==
0
? OK=
1
: OK=
2.0
puts
OK
A czytamy to tak: jeśli zmienna OK ma wartość równą 0 wtedy zmień jej
wartość na 1 (integer), jeśli ma wartość różną od 0 przypisz jej wartość 2.0
(float, zmiennoprzecinkowa).