Ruby/Struktury sterujące: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Kj (dyskusja | edycje)
mNie podano opisu zmian
Szymon wro (dyskusja | edycje)
Nie podano opisu zmian
Linia 1:
== Struktury sterujące ==
This chapter explores more of ruby's control structures.
case
 
Ten rozdział odkrywa nieco więcej na temat struktur sterujących w Rubim.
We use the case statement to test a sequence of conditions. This is superficially similar to switch in C and Java but is considerably more powerful, as we shall see.
 
=== case ===
 
Instrukcji ''case'' używamy do sprawdzenia sekwencji warunków. Na pierwszy rzut oka jest ona podobna do instrukcji ''switch'' z języka C lub Java ale znacznie bardziej potężna, jak za chwilę zobaczymy.
 
<pre>
Linia 14 ⟶ 17:
6..10
nil
 
</pre>
 
2..5 is an expression which means the range between 2 and 5, inclusive. The following expression tests whether the value of i falls within that range:
''2..5'' jest wyrażeniem oznaczającym przedział zamknięty od 2 do 5. Następujące wyrażenie sprawdza czy wartość ''i'' należy do tego przedziału:
 
<pre>
Linia 22 ⟶ 25:
</pre>
 
''case'' wewnętrznie używa operatora relacji ''==='' by sprawdzić kilkanaście warunków za jednym razem. W odniesieniu do obiektowej natury Rubiego, ''==='' jest interpretowany odpowiednio dla obiektu który pojawia się jako warunek w instrukcji ''when''. Na przykład, następujący kod sprawdza równość łańcuchów znakowych w pierwszym wyrażeniu ''when'' oraz zgodność wyrażeń regularnych w drugim ''when''.
case internally uses the relationship operator === to check for several conditions at a time. In keeping with ruby's object oriented nature, === is interpreted suitably for the object that appeared in the when condition. For example, the following code tests string equality in the first when, and regular expression matching in the second when.
 
<pre>
Linia 31 ⟶ 34:
| puts "includes /def/"
| end
</pre>
<pre>
includes /def/
nil
while
</pre>
 
=== while ===
Ruby provides convenient ways to construct loops, although you will find in the next chapter that learning how to use iterators will make it unnecessary to write explicit loops very often.
 
Ruby dostarcza wygodnych sposobów do tworzenia pętli, chociaż jak odkryjesz w następnym rozdziale, wiedza o tym jak używać iteratorów często zaoszczędzi ci bezpośredniego pisania własnych pętli.
A while is a repeated if. We used it in our word-guessing puzzle and in the regular expression programs (see the previous chapter); there, it took the form while condition ... end surrounding a block of code to be repeated while condition was true. But while and if can as easily be applied to individual statements:
 
''while'' jest powtarzanym ''if''. Używaliśmy tej instrukcji w nasze słownej zgadywance i w programach sprawdzających wyrażenia regularne (zobacz [[Ruby/Powrót do prostych przykładów|poprzedni rozdział]]). Tutaj instrukcja ta przyjmuje formę ''while'' warunek ... ''end'' otaczającą blok kodu które będzie powtarzany dopóki warunek jest prawdziwy. Ale ''while'' i ''if'' mogą być łatwo zaaplikowane do pojedynczych wyrażeń:
 
<pre>
Linia 51 ⟶ 53:
nil
ruby> puts i+=1 while i<3
</pre>
<pre>
1
2