Ruby on Rails díl.11, Ruby - Podmíněné rozvětvení, Smyčky

Napsal (») 25. 2. 2007 v kategorii Programování, přečteno: 1530×
obrazky/rubyonrailsn.pngIdeální webhosting pro Ruby on Rails je banan.cz.

Podmíněné rozvětvení


Ruby může ovládat vykonávání kódu používáním podmíněného rozvětvení. Podmíněné rozvětvení bere v úvahu výsledek zkušebního výrazu a vykonává blok kódu v závislosti zda zkušební výraz je pravda nebo nepravda.Jestli zkušební se výraz vyhodnotí do false nebo nil, test je nepravda, jinak to je pravda. Všimněte si , že číselná nula je považovaná za pravdu, zatímco mnoho jiných programovacích jazyků je to nepravda.

V mnoha populárních programovacích jazycích, jsou podmíněné rozvětvení pouze sdělení. Mohou ovlivnit který kód je vykonaný, ale nevyplývají z nich hodnoty samy. V Ruby, ať tak nebo onak, podmíněné rozvětvení jsou výrazy. Ohodnotí hodnoty, právě to jako další výrazy dělají. Jestli výraz, například, nejen určuje zda vykoná vedlejší blok kódu, má to za následek hodnotu samotnou. Například, následující jestli výraz ohodnocuje 3:

if true
3
end


Ruby podmíněné rozvětvení podrobněji si vysvětlíme dále.

Výraz if

Příklady:

a = 5
if a == 4
a = 7
end
print a# tiskne 5 dokud není vykonán if blok


Můžete také dát zkušební výraz a blok kódu na stejný řádek pokud vám to vyhovuje:

if a == 4 then a = 7 end


Toto se rovná:

a = 5
a = 7 if a == 4
print a # tiskne 5 dokud není vykonán if blok


Výraz unless

Výraz unless je opačný if, blok příkazů se provádí pokud není podmínka splňena.

Příklady:

a = 5
unless a == 4
a = 7
end
print a # tiskne 7 dokud není vykonán blok


Výraz unless je přesně to samé jako negované if:

if !vyraz # je to same jako
unless vyraz


Stejně jako s if můžete tedy napsat:

a = 5
a = 7 unless a == 4
print a # tiskne 7 dokud není vykonán blok


Výraz if-elsif-else

Elsif (všímněte si, že to je elsif a ne elseif) a else bloky vám dají další kontrolu nad vašimi skripty poskytováním volby k tomu, aby vyhověla dodatečným zkouškám. Můžete mít libovolné množství elsif bloků ale jen jeden blok else.

Syntaxe:

if výraz
...blok kódu...
elsif další výraz
...blok kódu...
elsif další výraz
...blok kódu...
else
...blok kódu...
end


Výraz short-if

"short-if" poskytuje skladný způsob hodnocení výrazu a vrácení hodnoty. Toto je velmi užitečné při spojování řětězců kromě jiného.

Příklad:

a = 5
plus_or_minus = '+'
print "The number+1 is: " + (plus_or_minus == '+' ? (a+1).to_s : (a-1).to_s) + "."


Toto [? (výraz) :(výraz)] je také známý jako termární operátor. Doporučuji vám použít této syntaxe jen pro menší úkoly, jako string formátování, kvůli chudé kódové čitelnosti která z toho může vyplývat.

irb(main):037:0> true ? ' t ' :' f '
=> "t"
irb(main):038:0> false ? ' t ' :' f '
=> "f"


Smyčky


while

while v Ruby je velmi podobné if a v dalších jazycích while (syntakticky):

while <výraz>
<...blok kódu...>
end


Kódový blok bude vykonaný stále znovu, dokud výraz bude pravda.

Také následující zápis je možný:

<...kód...> while <výraz>


Všimněte si následující relativně divný zápis funguje...

linka = inf.readline while line != "co hledas"


Tak jestli linka, lokální proměnná nemá žádnou existenci před touto linkou, bude mít tento výraz po prvním průchodu hodnotu nil.
Štítky: Ruby on Rails
Facebook Twitter Topčlánky.cz Linkuj.cz

Komentáře

Článek ještě nebyl okomentován.


Nový komentář

Téma:
Jméno:
Notif. e-mail *:
Komentář:
  [b] [obr]
Odpovězte prosím číslicemi: Součet čísel tři a osm