wtorek,
JS: Niestandardowe pętle for
W świecie programowania, pętla 'for' jest niczym stary, dobry przyjaciel – zawsze obecny, niezawodny i gotowy do pracy. Dla wielu programistów, szczególnie tych na początku swojej drogi, jest to jedna z pierwszych struktur sterujących, którą się poznaje i używa. Tradycyjnie, służy do przeglądania tablic, przetwarzania danych, a nawet do prostych operacji iteracyjnych. Jednakże, pod powierzchnią tej pozornie prostej konstrukcji kryją się możliwości, które mogą przekształcić codzienne zadania kodowania w coś znacznie bardziej fascynującego. Odkryj twórcze i mniej konwencjonalne sposoby wykorzystania pętli 'for' w JavaScript. Od podwójnej inicjalizacji i złożonych warunków po pętle bez tradycyjnych elementów — te techniki nie tylko urozmaicą kod, ale także mogą zwiększyć jego wydajność i czytelność.
Zadania pętli for w JavaScript poza standardowym schematem iteracji po liczbach można realizować na różne kreatywne sposoby. Jest bardzo elastyczna i pozwala na wiele różnych modyfikacji standardowej składni.
Przykłady
Każdy z przykładów demonstruje różne sposoby na twórcze wykorzystanie pętli for
w JavaScript. Dzięki tej elastyczności pętla for
może być dostosowana do rozmaitych potrzeb i scenariuszy programistycznych.
Podwójna inicjalizacja
Możesz zainicjalizować więcej niż jedną zmienną.
for (let i = 0, j = 10; i < 5; i++, j--) {
console.log(i, j);
}
W tym przykładzie i
jest inkrementowane, a j
jest dekrementowane w każdej iteracji.
Brak warunku
Brak warunku sprawia, że pętla staje się nieskończona. Aby z niej wyjść, trzeba użyć break
.
for (let i = 0; ; i++) {
console.log(i);
if (i === 5) break;
}
Ta pętla będzie kontynuowana, dopóki nie napotka instrukcji break
.
Inna instrukcja niż inkrementacja/dekrementacja
Możesz użyć innych operacji niż standardowa inkrementacja lub dekrementacja.
for (let i = 1; i < 100; i *= 2) {
console.log(i);
}
W tym przykładzie i
jest podwajane w każdej iteracji.
Brak inicjalizacji
Jeśli zmienna została już wcześniej zainicjalizowana, możesz pominąć inicjalizację.
let i = 0;
for (; i < 5; i++) {
console.log(i);
}
To jest użyteczne, gdy chcesz użyć zmiennej, która została zainicjalizowana wcześniej.
Puste ciało pętli, operacje w instrukcji
Możesz umieścić wszystkie operacje w instrukcji, zostawiając puste ciało pętli.
for (let i = 0; i < 5; console.log(i++));
W tym przypadku wszystkie operacje (w tym logowanie do konsoli) są wykonane w instrukcji.
Pętla bez inicjalizacji i instrukcji
Możesz pominąć inicjalizację i instrukcję, używając jedynie warunku.
let i = 0;
for (; i < 5; ) {
console.log(i);
i++;
}
Pętla for bez inicjalizacji, warunku i instrukcji
Taki typ pętli może wydawać się nieskończony, ale możesz kontrolować jej przebieg za pomocą break
wewnątrz ciała pętli.
for (;;) {
let odpowiedz = prompt("Wpisz 'exit', aby zakończyć pętlę");
if (odpowiedz === "exit") {
break;
}
}
W tym przykładzie pętla będzie kontynuowana, dopóki użytkownik nie wpisze "exit".
Pętla for ze złożonym warunkiem
Możesz użyć bardziej skomplikowanych warunków, aby kontrolować przebieg pętli.
for (let i = 0, j = 10; i < 10 && j > 0; i++, j -= 2) {
console.log(`i: ${i}, j: ${j}`);
}
Ta pętla inkrementuje i
i dekrementuje j
równocześnie kontynuując dopóki oba warunki są spełnione.
Pętla for z niekonwencjonalną „inkrementacją”
Możesz modyfikować licznik pętli w nietypowy sposób.
for (let i = 0; i < 100; i = i * 2 + 1) {
console.log(i);
}
W tym przykładzie wartość i
jest modyfikowana według wzoru i = i * 2 + 1
w każdej iteracji.
Pętla for z warunkiem zależnym od zewnętrznej zmiennej
Możesz użyć zewnętrznej zmiennej do kontrolowania warunku pętli.
let warunek = true;
for (let i = 0; warunek; i++) {
console.log(i);
if (i > 5) {
warunek = false;
}
}
W tym przypadku pętla kontynuuje działanie, dopóki zmienna warunek
jest true
.
Pętla for z wielokrotną inkrementacją
Możesz wykonać więcej niż jedną operację inkrementacji/dekrementacji w instrukcji.
for (let i = 0, j = 0; i < 10; i++, j += 2) {
console.log(`i: ${i}, j: ${j}`);
}
Tutaj i
jest inkrementowane o 1, a j
o 2 w każdej iteracji pętli.