Instrukcja continue w JavaScript
Istnieje również instrukcja continue,
która uruchamia nową iterację pętli. Ta
instrukcja może czasami być przydatna do
uproszczenia kodu, chociaż prawie zawsze zadanie
można rozwiązać bez niej. Spójrzmy
na praktycznym przykładzie.
Załóżmy, że mamy daną tablicę z liczbami. Przejdźmy
ją pętlą i liczby, które dzielą się
przez 2, podnieśmy do kwadratu i wypiszmy
w konsoli, a liczby, które dzielą się przez 3,
podnieśmy do sześcianu i wypiszmy w konsoli. Oto rozwiązanie
opisanego zadania:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
for (let elem of arr) {
let result;
if (elem % 2 === 0) {
result = elem * elem;
console.log(result);
} else if (elem % 3 === 0) {
result = elem * elem * elem;
console.log(result);
}
}
Jak widzisz, linijka console.log(result)
powtarza się dwa razy. Przenieśmy ją
poza if, w ten sposób:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
for (let elem of arr) {
let result;
if (elem % 2 === 0) {
result = elem * elem;
} else if (elem % 3 === 0) {
result = elem * elem * elem;
}
console.log(result); // przeniesiono wyświetlanie poza warunek
}
Teraz jednak nasz skrypt działa nieco
inaczej: okaże się, że również dla zwykłych elementów,
nieprzetworzonych przez nasz if, będzie
wykonywane wypisywanie zmiennej result
do konsoli, co zgodnie z warunkami naszego zadania nam
nie jest potrzebne.
Poprawmy problem, dodając do naszego if
kolejny warunek else, który będzie działał
dla elementów niepodzielnych przez 2 i
3, i wywołajmy tam instrukcję continue,
która natychmiast przeniesie nas
do nowej iteracji pętli:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
for (let elem of arr) {
let result;
if (elem % 2 == 0) {
result = elem * elem;
} else if (elem % 3 == 0) {
result = elem * elem * elem;
} else {
continue; // przejdziemy do nowej iteracji pętli
}
console.log(result); // wykona się, jeśli dzieli się przez 2 lub 3
}
Napisz pętlę, która wypisze tylko
liczby parzyste od 1 do 100,
pomijając nieparzyste za pomocą continue.