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).