Mam dla Was taki drobiazg. Bo w sumie pierwotnie celem tego bloga było pisanie właśnie o drobiazgach. Mam dla Was dosyć rzadką praktykę wśród programistów wszechinternetów. Na co dzień raczej się z nią nie spotykamy. Na pewno kojarzysz instrukcję break i raczej kojarzy ci się z przerywaniem pętli switch. Mało kto wie, że możemy ją także wykorzystać do przerwania pętli for!
Popatrzmy sobie na składnię instrukcji break:
break [label]I jak to teraz interpretować?
Label to opcjonalny parametr, który oznacza etykietę pętli, którą chcemy przerwać. Etykieta to dowolna nazwa pętli (jednocześnie poprawna zmienna) z dwukropkiem.
Otóż kiedy używamy samej instrukcji break (bez etykiety) to przerywamy switch (ofkors) lub najgłębszą, obecnie wykonywaną instrukcję for, while, do-while, a następnie kontynuujemy wykonywanie programu od miejsca za pętlą.
Kiedy używamy break z etykietą, to przerywamy specyficzną instrukcję for, while, do-while o nazwie tej etykiety.
Prosta teoria, prosty przykład.
for (let i = 1; i < 10; i++) {
if (i == 6) {
break;
}
console.log(i); // 1 2 3 4 5
}Outer:
for (let i = 1; i < 10; i++) {
console.log("i: " + i);
console.log(" j: ");
Inner:
for (let j = 1; j < 10; j++) {
if (j == 3) {
break Inner;
}
console.log(j + " ");
}
}
// Console:
// i: 1 j: 1 2
// i: 2 j: 1 2
// i: 3 j: 1 2
// i: 4 j: 1 2
// i: 5 j: 1 2
// i: 6 j: 1 2
// i: 7 j: 1 2
// i: 8 j: 1 2
// i: 9 j: 1 2 Skoro mówimy o break, to warto też wspomnieć o continue. Ta instrukcja z kolei powoduje przejście do następnej iteracji pętli.
for (let i = 0; i < 10; i++) {
if (i % 2 != 0)
continue;
console.log(i); // 0 2 4 6 8
} A teraz powiedzcie, czy mi się zdaje, czy przerywanie pętli breakiem jest jakoś mało popularne? Dlaczego? Czy, w kontekście pętli for, instrukcja break to po prostu bezużyteczna konstrukcja, która nie ma swojego praktycznego zastosowania w życiu?

