Podsumowanie drugiego rozdziału
Dział drugi dotyczył instrukcji warunkowych oraz pętli. Postaram się przedstawić ich zastosowanie w poniższym przykładzie.
Napiszemy skrypt, który wyswietli X ciągów liczb od zera do dwudziestu (gdzie X będzie wyznaczała zmienna $ilosc). Jeśli $ilosc będzie mniejsza od zera, wyświetlimy X ciągów od dwudziestu do zera (X oznaczymy jako „- $ilość”). Jeżeli $ilosc będzie równa 0, wyświetlimy komunikat o braku ciągów.
Jest to ćwiczenie praktyczne, prowadzone w celach edukacyjnych, dlatego postaramy się użyć jak największej liczby poznanych metod. Na początek sprawdzimy zmienną $ilosc za pomocą operatora ?. Następnie zagnieździmy w pętli while pętlę for (for wyświetli 20 liczb, a while będzie odpowiedzialna za ilość ciągów).
Przegląd rozwiązania
<?php $ilosc = X; // przypisujemy dowolną wartość zmiennej $ilosc // zmienna $kontynuacja sprawdza, czy $ilosc jest zerem $kontynuacja = ($ilosc == 0) ? 0 : 1; // jeśli nie jest, możemy kontynuować if($kontynuacja == 1) { if($ilosc > 0) // wyświetlamy ciągi od 0 do 20 while($ilosc > 0) // musimy wypisać $ilosc ciągów { for($i=0;$i<21;$i++) // 20 liczb za pomocą for echo $i; $ilosc--; // zmniejszamy, aż dojdzie do 0 echo "<br/>"; // przejście do kolejnej linijki } else // $ilosc jest ujemna, wyswietlamy od 20 do 0 while($ilosc < 0) // wypisujemy -$ilosc ciągów { for($i=20;$i>=0;$i--) // 20 liczb za pomocą for echo $i; $ilosc++; // zwiększamy, aż dojdzie do 0 echo "<br/>"; // przejście do kolejnej linijki } } else // jeśli kontynuacja wynosi 0 echo "Brak ciągów liczb"; ?>
Przeanalizujmy napisany przez nas kod. Na początku sprawdzamy, czy $ilosc równa się zero. Jeśli tak, instrukcje w warunku if nie zostaną wykonane. Interpreter przeskoczy do słowa else, którego instrukcja wypisze nam komunikat o braku ciągów. Jeśli jest różna od zera, sprawdzamy, czy jest od niego większa. Jeżeli jest, wykonujemy pętlę while dekrementując $ilosc tak długo, aż wyniesie ona zero. Jak łatwo zauważyć, pętla wykona się X razy, gdzie X to wartość $ilosc. Do wyświetlania dwudziestu jeden liczb użyta została pętla for. Na koniec <br/>, żeby przełamywać kolejne ciągi.
W przypadku, gdy $ilosc jest mniejsza od zera, wykonają się instrukcje dla słowa kluczowego else. Podejście jest niemal identyczne. Różnica tkwi w warunku kontynuacji pętli, jak również w wyświetlaniu (liczby wypisujemy wspak). $ilosc jest teraz inkrementowana, gdyż musimy z liczby ujemnej dojść do zera. Pewnie zauważyliście, że w niektórych momentach nie ma nawiasów klamrowych po pętli lub warunku. Pisałem o tym w którejś z poprzednich lekcji. Jeżeli wykonujemy tylko jedną instrukcję (również pętlę lub warunek) nawiasy nie są wymagane.
Mam nadzieję, że przykład pokazuje podstawowe możliwości pętli oraz instrukcji warunkowych oraz jego zrozumienie nie jest bardzo trudne. Opanowanie tej wiedzy jest kluczowe w dalszej nauce programowania w PHP.
Propozycje ćwiczeń dodatkowych
Tak, jak poprzednio, przygotowałem kilka zadań do przećwiczenia na własną rękę. Mówią, że praktyka czyni mistrza… Zatem nie zwlekaj ani chwili dłużej!
- Napisz skrypt, który za pomocą dowolnie wybranych pętli wypisze tabliczkę mnożenia z liczbami od 1 do 10; będzie konieczne zagnieżdżenie jednej pętli w drugiej; podobna konstrukcja jak w przykładzie powyżej,
- zmodyfikuj tabliczkę mnożenia tak, żeby liczby parzyste kolorowało na niebiesko, a nieparzyste na zielono; użyj warunku if,
- wykorzystując instrukcję warunkową switch, napisz skrypt, który w zależności od wartości zmiennej (2, 3, 4) wyświetli ciąg dziesięciu kolejnych liczb podniesionych do potęgi o wartości zmiennej (2, 3, 4); skorzystaj z wiedzy, że x^3 to inaczej x*x*x (analogicznie x^2 i x^4)
To wszystko, co miałem przygotowane na tę partię materiału. Zapraszam do kolejnego rozdziału, poświęconego pisaniu własnych funkcji oraz używaniu tablic!
Spis lekcji w rozdziale drugim
Poprzednia lekcja: Operator ? | Następna lekcja: Rozdział trzeci |