Ruby/Powrót do prostych przykładów: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
Szymon wro (dyskusja | edycje) mNie podano opisu zmian |
Szymon wro (dyskusja | edycje) mNie podano opisu zmian |
||
Linia 22:
<pre>def fact(n)</pre>
W pierwszej linii, <tt>def</tt> jest instrukcją służącą do definiowania funkcji (lub, bardziej precyzyjnie, metody
<pre>if n == 0</pre>
<tt>if</tt> służy do sprawdzania warunku. Kiedy warunek jest spełniony, następny fragment kodu jest obliczany
<pre>1</pre>
Linia 34:
<pre>else</pre>
Jeżeli warunek nie jest spełniony, obliczany jest kod znajdujący się od tego miejsca aż do <tt>end</tt>.
<pre>n * fact(n-1)</pre>
Linia 58:
=== Łańcuchy znakowe ===
Teraz zbadamy nasz program - łamigłówkę z rozdziału o [[Ruby/Łańcuchy znakowe|łańcuchach znakowych]]. Ponieważ jest on nieco długi, ponumerujmy linie, by móc się łatwo do nich odwoływać.
<pre>
Linia 78:
</pre>
W tym programie
<tt>STDIN</tt> oznacza obiekt standardowego wejścia. Zwykle, <tt>guess = gets</tt> robi to samo co <tt>guess = STDIN.gets</tt>.
<tt>rand(3)</tt> w linii 2 zwraca losową liczbę w przedziale od 0 do 2. Ta losowa liczba jest użyta do wyciągnięcia jednego elementu z tablicy <tt>words</tt>.
W linii 5 czytamy jedną linię ze standardowego wejścia przez metodę <tt>STDIN.gets</tt>. Jeżeli wystąpi EOF (ang. ''end of file'' - koniec pliku) podczas pobierania linii, <tt>gets</tt> zwróci <tt>nil</tt>. Tak więc kod skojarzony z tą pętlą <tt>while</tt> będzie powtarzany dopóki nie zobaczy <tt>^D</tt> (lub <tt>^Z</tt> czy też F6 pod DOS/Windows), co oznacza koniec
<tt>guess.chop!</tt> w linii 6 usuwa ostatni znak z <tt>guess</tt>
W linii 15 drukujemy tajne słowo (<tt>secret</tt>). Zapisaliśmy to jako wyrażenie <tt>puts</tt> (skrót od ang.
<pre>puts "the word is #{secret}."</pre>
|