#Blok dla fałszu obu warunków;
fi
</pre>
- <h3 id="18.3.2.case">18.3.2. Konstrukcja warunkowa - case</h3>
+ <h3 id="18.3.2.case">18.3.2. Konstrukcja warunkowa - case</h3>
+ <p>
+ Inny rodzajem konstrukcji warunkowej, jest konstrukcja
+ <strong>case</strong>, działa ona trochę na innej zasadzie niż
+ konstrukcja <em>if-then-else</em>. Nie mam tutaj klasycznego warunku,
+ a jedynie zmienna, która jest porównywana z zapisanymi przez
+ programistę wartościami (<em>przypadkami</em>). Przypadki definiują
+ bloki kodu, w momencie gdy wartość zmiennej jest równa wartości
+ danego przypadku wówczas BASH wykona instrukcje zapisane w bloku
+ tego przypadku.
+ </p>
+<pre class="code-block">
+case $alphabet; in
+ 'a') echo "A";;
+ 'b') echo "B";;
+esac
+</pre>
+ <p>
+ Zmienna <code class="code-inline">alphabet</code> będzie kolejno
+ porównywana z przypadkami <code class="code-inline">'a'</code>
+ <code class="code-inline">'b'</code>. Jeśli zostanie odnaleziony
+ odpowiedni przypadek, wówczas zostanie uruchomiony odpowiedni blok
+ kodu. Zwróćmy uwagę na to, że bloki kodu poszczególnych przypadków
+ zakończone są podwójnym średnikiem, jest to wymagane, a jego
+ pominięcie spowoduje błąd powłoki.
+ </p>
+ <p>
+ Konstrukcja <em>Case</em> posiada przypadek uniwersalny
+ wykorzystywany gdy zmienna nie pasuje, do żadnego z przypadków.
+ Wartość takiego przypadku zapisuje się symbolem gwiazdki
+ (<strong>*</strong>).
+ </p>
+<pre class="code-block">
+case $alphabet; in
+ 'a') echo "A";;
+ 'b') echo "B";;
+ *) echo "To nie jest litera alfabetu";;
+esac
+</pre>
+ <p>
+ W przypadku konstrukcji <em>case</em>, bloki kodu mogą nie być aż
+ tak widoczne. Niemniej jednak blok rozpoczyna się od wskazania
+ wartości przypadku i obejmuje wszystkie instrukcje, aż do napotkania
+ podwójnego średnika. Samo wskazanie wartości przypadku nie musi się
+ ograniczać do pojednczej wartości, ale może zawierać warianty.
+ </p>
+<pre class="code-block">
+case $alphabet; in
+ 'a'|'A') echo "A";;
+ 'b') echo "B";;
+ *) echo "To nie jest litera alfabetu";;
+esac
+</pre>
+ <p>
+ Konstrukcja <em>case</em>, stosowana jest głównie po to aby nie
+ tworzyć kaskady konstrukcji <em>if-then-elif-else</em>. Każda
+ konstrukcja <em>case</em>, kończy się słowem kluczowym
+ <strong>esac</strong>.
+ </p>
+ <h2 id="18.4.loops">18.4. Pętle</h2>
+ <p>
+ Pętle w programowaniu służa wykonywaniu powtarzalnych czynności
+ pod pewnym warunkiem. W bloku pętli element warunku
+ (najprawdopodobniej) ulega zmiania, tak aby pętla zakończyła się
+ i interpretacja programu wróciła na właściwy tor. Jeśli tak się nie
+ dzieje, to wówczas mamy doczynienia z nieskończoną pętlą, tego typu
+ konstrukcje nie zawsze muszą oznaczać pełnego wykorzystania zasobów
+ komputera, w zależności co znajduje się w ich bloku kodu. W BASH-u
+ dość często wykorzystywane są dwa rodzaje pętli.
+ </p>
+ <h3 id="18.4.1.whileloop">18.4.1. Pętla while</h3>
+ <p>
+ Pętla <em>while</em> jest podstawowm rodzajem pętli, który potrzebuje
+ do działania spełnionego warunku, wówczas uruchamiana jest
+ sekwencja poleceń znajdujące sie w bloku tek pętli. W przypadku tego
+ rodzaju pętli istotne jest utworzenie <strong>licznika</strong> -
+ zmiennej, która będzie kontrolować ilość powtórzeń pętli. Licznik
+ zmieniany jest zazwyczaj, gdzieś na samym końcu pętli lub jego
+ zmiana jest użależniona od określonego warunku. Ze względu na to, iż
+ warunek pętli musi być prawdą, aby mogła ona w ogóle rozpocząć
+ działanie - licznik musi zostać zdefiniowany przed pętlą. Poniżej
+ znajduje się przykładowa konstrukcja pętli while wyświetlająca
+ kwadraty pierwszych 10 dodatnich liczb.
+ </p>
+<pre class="code-block">
+count=1
+while [ $count -le 10 ]; do
+ pow=$(expr $count \* $count);
+ echo "${count}: $pow";
+ count=$(expr $count + 1);
+done
+</pre>
+ <p>
+ Pętla <em>while</em>, rozpoczyna się od słowa kluczowego
+ <code class="code-inline">while</code>, po którym następuję
+ warunek. Warunek (jak sama nazwa pętli może wskazywać) musi być
+ spełniony, aby pętla się uruchomiła, bez tego pętla nie wykona się
+ ani razu. Warunek operuje na klasycznych instrukcjach warunkowych.
+ Co pozwala stwierdzić, że pętla <em>while</em> działa na takiej
+ samej zasadzie jak konstrukcja <em>if</em>. Po warunku obowiązkowo
+ występuje średnik, blok kodu zawierającego instrukcje do wykonania w
+ pętli otwiera słowo kluczowe <code class="code-inline">do</code>.
+ Po tym słowie umiesczana jest sekwencja poleceń, która będzie
+ wykonywana dopóki warunek będzię spełniony (będzie zwracać prawdę).
+ Blok kodu pętli, kończy się słowem kluczowym
+ <code class="code-inline">done</code>.
+ </p>
</div>
<p style="margin: 15px; padding: 0; outline: 0;">
2024; COPYLEFT; ALL RIGHTS REVERSED;