Pętle while
i do…while
w JavaScript to podstawowe struktury kontrolne, które pozwalają programiście na wykonywanie określonego bloku kodu wielokrotnie, dopóki spełniony jest określony warunek. Te dwa rodzaje pętli mają podobne zastosowania, ale różnią się sposobem, w jaki sprawdzają warunek: while
sprawdza warunek przed wykonaniem instrukcji, a do…while
wykonuje instrukcje przynajmniej raz, zanim sprawdzi warunek.
Pętla while
w JavaScript
Pętla while
jest używana, gdy chcemy wykonywać blok kodu, dopóki określony warunek jest prawdziwy. Ma ona następującą składnię:
while (warunek) {
// kod do wykonania, gdy warunek jest prawdziwy
}
Przykład:
let count = 0;
const maxCount = 5;
while (count < maxCount) {
console.log(count);
count++;
}
W tym przykładzie, pętla while
będzie kontynuować swoje działanie, dopóki count
jest mniejsze niż maxCount
.
Nieskończona JavaScript pętla while
Nieskończone pętle while
są pętlami, które nigdy się nie kończą, ponieważ warunek pętli zawsze zwraca wartość true
. Należy ich unikać, ponieważ mogą spowodować zawieszenie się programu.
Przykład:
while (true) {
// Kod, który będzie wykonywany w nieskończoność
}
Pętla do…while
w JavaScript
Pętla do…while
jest podobna do pętli while
, z tą różnicą, że gwarantuje wykonanie bloku kodu przynajmniej raz, niezależnie od wyniku warunku.
Składnia:
do {
// kod do wykonania
} while (warunek);
Przykład:
let i = 0;
do {
console.log(i);
i++;
} while (i < 5);
W tym przypadku, blok kodu wewnątrz pętli do…while
zostanie wykonany przynajmniej raz, nawet jeśli warunek i < 5
nie jest spełniony przy pierwszym sprawdzeniu.
JavaScript pętla while: Podsumowanie
Pętle while
i do…while
są potężnymi narzędziami w JavaScript, które umożliwiają programiście wykonywanie powtarzalnych zadań. Ważne jest jednak, aby używać ich z rozwagą, szczególnie w kontekście potencjalnego ryzyka stworzenia nieskończonej pętli. Wybór między while
a do…while
zależy od wymagań logicznych danej sytuacji: czy blok kodu powinien zostać wykonany przynajmniej raz (użyj do…while
) czy też nie (użyj while
).