Instrukcja continue
służy do pomijania bieżącej iteracji pętli i przechodzenia do kolejnej, bez wykonywania dalszego kodu w tej iteracji. Nie przerywa całej pętli, tylko sprawia, że bieżący obrót zostaje pominięty.
1. Składnia i zasada działania
Instrukcja continue
może być używana w pętlach for
, while
oraz do...while
.
Ogólna składnia:
for (inicjalizacja; warunek; zmiana) {
if (warunek_pominięcia) {
continue; // Pomija resztę kodu i przechodzi do następnej iteracji
}
// Ten kod zostanie wykonany tylko, jeśli continue NIE zostanie wywołane
}
2. Przykłady zastosowania
2.1. Pomijanie liczb parzystych w pętli for
Załóżmy, że chcemy wypisać liczby od 1 do 10, ale pominąć liczby parzyste.
#include <iostream>
using namespace std;
int main() {
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) {
continue; // Pomija liczby parzyste
}
cout << i << " ";
}
return 0;
}
✅ Wynik: 1 3 5 7 9
(liczby parzyste zostały pominięte).
2.2. Pomijanie błędnych danych w pętli while
Jeśli użytkownik poda ujemną liczbę, program ją pominie i poprosi o nową wartość.
#include <iostream>
using namespace std;
int main() {
int liczba;
while (true) {
cout << "Podaj liczbę dodatnią (0 kończy): ";
cin >> liczba;
if (liczba < 0) {
cout << "Liczba ujemna - pomijam!" << endl;
continue; // Pomija resztę kodu i wraca do początku pętli
}
if (liczba == 0) {
cout << "Koniec programu!" << endl;
break; // Zatrzymuje pętlę
}
cout << "Podana liczba: " << liczba << endl;
}
return 0;
}
✅ Działanie:
- Dla
-5
program wypisze: „Liczba ujemna – pomijam!” - Dla
3
wypisze: „Podana liczba: 3” 0
zakończy działanie programu.
2.3. Pomijanie spacji w tekście
Załóżmy, że chcemy wypisać zdanie, ale bez spacji.
#include <iostream>
#include <string>
using namespace std;
int main() {
string tekst = "C++ jest super!";
for (char znak : tekst) {
if (znak == ' ') {
continue; // Pomija spacje
}
cout << znak;
}
return 0;
}
✅ Wynik: C++jestsuper!
(spacje zostały usunięte).
2.4. Użycie continue
w do...while
Pętla do...while
gwarantuje wykonanie kodu co najmniej raz. W tym przykładzie, jeśli użytkownik poda liczbę ujemną, program pominie jej wyświetlanie.
#include <iostream>
using namespace std;
int main() {
int liczba;
do {
cout << "Podaj liczbę (0 kończy): ";
cin >> liczba;
if (liczba < 0) {
cout << "Ujemna liczba - pomijam!" << endl;
continue; // Wraca do początku pętli, nie wyświetlając liczby
}
cout << "Podałeś: " << liczba << endl;
} while (liczba != 0);
return 0;
}
✅ Działanie: Program nie wypisze ujemnych liczb, ale nie zakończy działania – użytkownik może podać inną wartość.
3. continue
w zagnieżdżonych pętlach
Jeśli continue
zostanie użyte w pętli wewnętrznej, pomija tylko bieżącą iterację tej pętli, a nie całej struktury.
Przykład: Pomijanie j == 2
w pętli wewnętrznej
#include <iostream>
using namespace std;
int main() {
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
if (j == 2) {
continue; // Pomija j == 2
}
cout << "i = " << i << ", j = " << j << endl;
}
}
return 0;
}
✅ Wynik:
i = 1, j = 1
i = 1, j = 3
i = 2, j = 1
i = 2, j = 3
i = 3, j = 1
i = 3, j = 3
🔹 Pętla wewnętrzna pomija tylko j == 2
, ale pętla i
działa normalnie.
4. break
vs continue
– różnice
Instrukcja | Działanie |
---|---|
break | Zatrzymuje całą pętlę i wychodzi z niej |
continue | Pomija tylko bieżącą iterację, ale pętla działa dalej |
Porównanie w pętli for
for (int i = 1; i <= 5; i++) {
if (i == 3) {
break; // Przerywa całą pętlę
}
cout << i << " ";
}
✅ Wynik: 1 2
(pętla przerwana po i == 3
).
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue; // Pomija tylko tę iterację
}
cout << i << " ";
}
✅ Wynik: 1 2 4 5
(3
zostało pominięte, ale pętla działa dalej).
5. Podsumowanie
✅ continue
pozwala na pomijanie konkretnej iteracji pętli, ale nie przerywa jej całkowicie.
✅ Używane w for
, while
, do...while
do omijania niechcianych wartości.
✅ W zagnieżdżonych pętlach działa tylko na najbliższą pętlę.
✅ break
zatrzymuje pętlę, a continue
tylko pomija bieżącą iterację.