Oto materiał poświęcony wyjaśnieniu na czym polega pętla "do while" w języku Kotlin, kiedy można rozważyć jej użycie i jak bardzo jest zbliżona do pętli "while" opisanej w osobnym artykule 🔔. Zapraszam 😃!

OTO CO OZNACZA PĘTLA "DO WHILE" W JĘZYKU KOTLIN!

W pierwszej kolejności wyjaśnimy sobie samo pojęcie, następnie pokażę budowę w kodzie źródłowym, wyjaśnię jakie występują różnice względem pętli "while", aż w końcu przejdziemy do prostego przykładu użycia 👍!

Czym jest pętla "do while" w języku Kotlin?

W Kotlinie, pętla "do while" to jeden z rodzajów pętli przeznaczonych do wykonywania pewnego bloku instrukcji nieregularną liczbę razy, zatem pasuje doskonale do przypadków, w których nie da się jednoznacznie określić dokładnej liczby wymaganych powtórzeń celem osiągnięcia oczekiwanego wyniku. W pierwszej chwili można ją utożsamiać z pętlą "while" (wytłumaczonej tutaj), która także świetnie pasuje do sytuacji, gdy nie można przewidzieć ile konkretnie razy coś powinno zostać zrobione, aczkolwiek jest jedna bardzo ważna różnica 💥!

W pętli "while" najpierw sprawdzamy warunek wejścia, a potem (ewentualnie) wykonujemy blok instrukcji. W pętli "do while" najpierw wykona się cały blok instrukcji i to niezależnie od tego, czy warunek jest spełniony 😮! Dopiero po jednokrotnym wykonaniu, sprawdzany jest warunek wejścia 👀! Gdy przejdziemy do prezentacji budowy w kodzie źródłowym, łatwo dostrzeżesz, że sama postać na to "wskazuje" ➡️.

Z tej pętli prawdopodobnie będziesz korzystać najrzadziej ze wszystkich pozostałych właśnie z powodu gwarantowanego jednokrotnego wykonywania 🙂.

Kiedy najlepiej użyć pętli "do while" w języku Kotlin?

Pętla "do while" gwarantuje wykonanie zawartych instrukcji przynajmniej jeden raz. Z tego względu jedynym jej właściwym użyciem będą przypadki, w których coś powinno się zdarzyć niezależnie od spełnienia czy też niespełnienia warunku. Prostym przykładem jest wyświetlenie użytkownikowi wszystkich dostępnych możliwości, tak jak na teście wielokrotnego wyboru i wybranie jednej z nich ⏏️. Możemy się zdecydować na którąś z opcji albo po prostu wyjść z programu, natomiast to mimo wszystko powinno nam się ukazać przed oczami.

W pozostałych przypadkach pętla "do while" nie będzie najlepszym wyborem i lepiej wtedy przesiąść się na pętlę "for" albo "while", w zależności od tego, czy operujemy na jakimś zbiorze danych lub wiemy dokładnie ile razy coś powinno się wykonać, czy nie mamy możliwości przewidzieć liczby iteracji, natomiast chcemy mieć kontrolę nad wykonaniem instrukcji po raz pierwszy zależnie od spełnionego warunku 💡.

Tym zdaniem kończę część teoretyczną, a teraz przejdziemy do praktyki 🔍!

Kiedy najlepiej użyć pętli "do while" w języku Kotlin?

W języku Kotlin, pętlę "do while" tworzymy w sposób następujący 👇:

do {
	[instrukcje]
} while ([warunek wejścia])

Jak możesz dostrzec, również i w tym przypadku Kotlin nie odstaje od postaci identycznej do tradycyjnej formy znanej z języka C 😊. Wyjaśniam sposób zapisu!

Najpierw piszemy słowo "do" jako pierwsze z dwóch słów kluczowych. Potem otwieramy klamerki, które tworzą nam blok kodu dla instrukcji jakie mają się wykonywać wiele razy i umieszczamy je między nimi. Tuż po zamykającym nawiasie klamrowym piszemy kolejne słowo kluczowe: "while", a potem jest identyczna postać jaka występuje w pętli "while", czyli nawiasy okrągłe i warunek wejścia w środku (tyle, że na początku) 👀.

Dlatego pisałem o tym, że sama postać pętli "do while" w pewnym sensie "podpowiada" w jakiej kolejności będzie postępować 👍. Najpierw mamy blok instrukcji, czyli one zostaną wykonane jako pierwsze, a warunek wejścia jest drugi w kolejności, zatem on zostanie sprawdzony później (już po pierwszym wykonaniu instrukcji) 😉.

Spojrzymy teraz na prosty przykład użycia pętli "do while" w praktyce 😊!

Przykład użycia pętli "do while" w języku Kotlin

Analogiczny przykład do tego, jaki zostawiłem w materiale o pętli "while" 😄. Losowanie liczby od 1 do 10, a następnie zbadanie czy udało się wylosować numer 5. Jeżeli liczba nie jest równa 5, powtarzamy to losowanie 🔁. Za każdym razem gdy losowana jest liczba na nowo, zwiększamy licznik o jeden (inkrementując go), tak aby na końcu wyświetlić sumaryczną liczbę powtórzeń jaka była konieczna 🔢. Gdy dojdzie do wylosowania liczby 5, program kończy swoje działanie.

Oto kod w Kotlinie, który realizuje to zadanie 👇:

import kotlin.random.Random

fun main() {
	var randomNumber : Int
	var numberOfTimes = 0

	do {
		randomNumber = Random.nextInt(1, 11)
		numberOfTimes++
	} while (randomNumber != 5)

	println("Liczba iteracji: $numberOfTimes")
}

A teraz wyjaśnienia wszystkiego po kolei 📣!

U samej góry sięgamy po pakiet "Random" do generowania liczb pseudolosowych, bo taka jest poprawna nazwa (jeżeli interesuje Cię dlaczego "pseudo", sięgnij do osobnego artykułu w którym to wyjaśniam 👈) 🔢.

Wewnątrz funkcji "main" (która stanowi w tym języku "miejsce startowe" każdego programu), zaczynamy od wstawienia dwóch zmiennych 2️⃣. Pierwsza dotyczy liczby jaka będzie losowana za każdym razem. Nie chcemy na tym etapie umieszczać jakiejkolwiek wartości, więc poprzestajemy na deklaracji, a ponieważ Kotlin kładzie duży nacisk na bezpieczeństwo, określamy obowiązkowo typ zmiennej i to będzie "Int" (liczba całkowita) 🎯. Druga zmienna oznacza liczbę powtórzeń jakie będą miały miejsce i ona także będzie całkowitoliczbowego typu danych, lecz tym razem będzie sensowne wpisanie wartości początkowej, więc podajemy 0 (zero) 😊.

Dalej mamy pętlę "do while" będącą głównym tematem niniejszego artykułu 🔥! W środku mamy tylko dwie instrukcje: wygenerowanie pseudolosowej liczby z użyciem funkcji "nextInt" (z zaimportowanego pakietu "Random") oraz zwiększenie licznika powtórzeń o jeden. Zatrzymam się na dłuższy moment przy funkcji "nextInt" ⚠️.

Jak możesz się domyślać, parametry określają początek i koniec przedziału liczbowego w jakim generator liczb ma się "obracać" ✔️. Jednak zauważ, że mówiliśmy o górnej granicy równej 10, a w kodzie występuje 11. Nie bez powodu 😲! Funkcja nie uwzględnia podanej górnej granicy (nazywamy to "exclusive end") i konieczne jest zwiększenie jej o jeden do góry 💥! To jest to samo co w matematyce, gdy mamy przedział liczbowy i prawa strona jest zamknięta nawiasem okrągłym ("wykluczenie" podanej wartości) 💡. W tym celu podnosimy górną granicę o jeden, aby zagwarantować uwzględnianie górnej granicy przedziału ✅!

Po zamknięciu bloku instrukcji pętli mamy warunek wejścia i w nim definiujemy konieczność powtórzenia wówczas, gdy wylosowana liczba przyjmuje wartość różną od 5. I to wszystko 😊. Jeżeli warunek nie jest spełniony, powtarzamy losowanie oraz zwiększanie licznika nieustannie, aż doczekamy się liczby 5 🔁. Jeżeli warunek jest spełniony, program wypisuje aktualny licznik iteracji (powtórzeń) poprzez wywołanie funkcji "println" i to jest koniec działania.

Uruchamiając sobie ten program, można wyciągnąć 2 ważne wnioski 👀. Po pierwsze, za każdym razem instrukcje w pętli wykonają się przynajmniej jeden raz. To jest pewne ☑️. Po drugie, za każdym razem wynik będzie inny. Liczba może się wylosować jeden raz, siedem razy albo sto razy. To jest niewiadoma ❓.

Pętla "do while" w języku Kotlin

Pętla "do while" w języku Kotlin jest zbliżona nazwą i działaniem do pętli "while", która także pasuje do sytuacji braku możliwości określenia ile razy dane instrukcje powinny zostać wykonane. W przeciwieństwie do pętli "while", tutaj najpierw dochodzi do wykonania instrukcji, a potem do zbadania warunku wejścia.


Wszystko w tym temacie, co trzeba wiedzieć 😉.

PODOBNE ARTYKUŁY