W tym artykule wyjaśnimy sobie jak wygląda i jak jest zbudowana pętla "while" w języku Kotlin 🔁! Materiał zaliczam do podstawowych zagadnień jakie powinien znać każdy programista Kotlina, także zapraszam Cię do lektury 📖!

ZOBACZ KIEDY CI SIĘ PRZYDA PĘTLA "WHILE" W JĘZYKU KOTLIN!

Na początek przyjrzymy się samemu pojęciu, a potem pokażę przykład kodu źródłowego z najlepszym zastosowaniem! W międzyczasie zwrócę uwagę na to, kiedy najlepiej to zastosować zamiast pętli "for" (opisanej w tym artykule) 😉!

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

Pętla "while" w języku Kotlin, to konstrukcja do wielokrotnego wykonywania tego samego bloku kodu, tak jak pętla "for". Różnica jest jednak zasadnicza 🔔.

W pętli "for" operujemy na jakiejś uporządkowanej sekwencji (np. na tablicy czy przedziale liczbowym). Tutaj mamy tzw. warunek wejścia. To oznacza, że w przeciwieństwie do pętli "for", w której wiemy ile razy ma dojść do powtórzenia instrukcji, tak tutaj konstrukcja sprowadza się do prostego uwarunkowania z użyciem tych samych operatorów relacyjnych, tak jakbyśmy pisali instrukcję warunkową 🔥.

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

W Kotlinie, pętla "while" doskonale pasuje do przypadków, w których nie ma możliwości wywnioskować ile razy coś powinno zostać zrobione, a instrukcje niekoniecznie mogą mieć związek z jakąkolwiek sekwencją (strukturą danych przechowujących wiele elementów) ℹ️. Prostym przykładem takiej sytuacji jest losowanie liczb (a w zasadzie pseudolosowanie, które szerzej wyjaśniłem w innym artykule) 🔢.

Gdy mamy dwie możliwości A i B, to zgodnie ze statystyką występuje po 50% szans na wylosowanie którejś z liczb. Natomiast kluczowe pytanie brzmi: "czy możemy w jakikolwiek sposób przewidzieć kiedy nastąpi wylosowanie możliwości X?". Odpowiedź brzmi: nie. Liczba może zostać wylosowana od razu, za drugim razem, za dziesiątym bądź za tysięcznym. Któregoś razu to nastąpi, natomiast kiedy? Nie wiadomo 😐.

Wtedy pętla "while" okaże się niezastąpiona, ponieważ w pętli "for", akurat w tym języku, nie możemy wstawić bezpośrednio żadnego warunku z uwagi na swoją budowę (musi przyjmować jakąś sekwencję) ❌! To jest możliwe w niektórych innych językach programowania, natomiast nie w przypadku Kotlina – ona ma specyficzną postać 🚫.

Skoro wyjaśniłem znaczenie pętli "while" i kiedy sprawdza się najlepiej, pokażę teraz jej budowę w kodzie źródłowym!

Jak utworzyć pętlę "while" w języku Kotlin?

Jeżeli chodzi o pętlę "while", to Kotlin wyjątkowo nie odstaje od klasycznej formy zapisu jaką możesz znać z innych języków programowania 😊. Piszemy ją w taki sposób 👇:

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

Po słowie kluczowym "while" (również uchowało się takie samo 😆), otwieramy parę nawiasów okrągłych i wewnątrz nich wstawiamy warunek jaki konstruujemy przy użyciu operatorów relacyjnych, a jeżeli ma on być złożony i być np. koniunkcją czy alternatywą, to dodatkowo przy pomocy operatorów logicznych ⭐. Następnie otwieramy parę nawiasów klamrowych i wewnątrz nich formułujemy wszystko to, co ma się wykonać wewnątrz pętli. Tyle 🙂.

Podsumujmy wszystkie informacje prostym przykładem użycia pętli "while"!

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

Oto przykład programu, w którym pętla "while" będzie pasować idealnie. Scenariusz jest taki, że losujemy sobie liczbę od 1 do 10 i sprawdzamy czy wylosowana liczba jest równa 5. Jeżeli tak, to kończymy działanie programu, a jeżeli nie, to powtórnie losujemy liczbę i sprawdzamy, aż dojdzie do wylosowania "piątki" 🔁.

Kod do takiego zadania może wyglądać następująco 👇:

import kotlin.random.Random

fun main() {
	var randomNumber = Random.nextInt(1, 11)
	var numberOfTimes = 0

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

	println("Liczba iteracji: $numberOfTimes")
}

Tłumaczę po kolei co się dzieje 📣!

Aby móc losować liczby, na sam początek importujemy sobie pakiet "Random" dostarczany przez Kotlina (to jest ta instrukcja na samej górze).

Teraz funkcja "main"! Tworzymy sobie dwie zmienne całkowitoliczbowe: jedna przechowująca wylosowaną wartość z przedziału od 1 do 10, a druga do zliczania iteracji jakie zostały wykonane po przekonaniu się, że wylosowana liczba nie jest równa 5 👍.

Zwróć uwagę, że metoda losująca "nextInt" przyjmuje górną granicę o jeden wyższą, niż chcieliśmy. To dlatego, że nie jest ona brana pod uwagę podczas losowania 💥! Określa się to "exclusive end", czyli "wykluczenie" podanej liczby z przedziału, tak samo jakbyśmy w matematyce oznaczyli koniec przedziału nawiasem otwartym (czy też "kółeczko otwarte", jak to się mówi), więc nie uwzględnia samej tej liczby. Abyśmy mieli zagwarantowane uwzględnienie liczby 10 w przedziale, zwiększamy wartość o jeden 💡.

W dalszej części mamy samą pętlę "while". Jak możesz zauważyć, jej warunek wejścia jest prosty i polega na założeniu, że wylosowana liczba równa się 5. Tyle ✅. Żadnych sekwencji po jakiejkolwiek strukturze, tylko samo badanie czy warunek jest spełniony ✔️.

Gdy okaże się, że liczba nie przyjmuje wartości 5, to program "wchodzi" do środka pętli i wykonuje wszystkie zawarte tam instrukcje. Tutaj są tylko dwie, czyli ponowne wylosowanie liczby oraz zwiększenie licznika iteracji o jeden, abyśmy mogli się na końcu dowiedzieć ile razy musiało dojść do ponownego losowania, abyśmy otrzymali oczekiwaną wartość 😄.

Jeżeli za którymś (niewiadomym) razem liczba będzie równa 5, to działanie pętli zostaje przerwane, a program przechodzi do dalszych instrukcji – w tym przypadku do jedynej jako wywołanie funkcji "println", w której odbywa się wypisanie ile razy program ponownie losował liczbę, aby otrzymać wartość 5.

Gdy uruchomisz sobie ten program, to w konsoli dostrzeżesz licznik wykonanych iteracji, a on przy każdym uruchomieniu będzie inny. Cały morał płynie z tego taki, że nigdy nie wiesz za którym razem należy przerwać działanie pętli 🔥.

Pętla "while" w języku Kotlin

Pętla "while" w języku Kotlin jest użyteczna, gdy dany problem wymaga wykonania pewnych instrukcji wiele razy, a liczba niezbędnych powtórzeń może być nieregularna. W przeciwieństwie do pętli "for", polega na klasycznym warunku wejścia i nie musi dotyczyć jakiejkolwiek sekwencji z danymi.


To jest tyle z tego tematu. Upewnij się, że dobrze rozumiesz postać i działanie pętli "while", gdyż z całą pewnością Ci się przyda w sytuacji, gdy nie będziesz w stanie przewidzieć liczby powtórzeń dla zadanego problemu 😉.

PODOBNE ARTYKUŁY