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