En aquest tema, explorarem dues instruccions de control molt útils en C++: break i continue. Aquestes instruccions s'utilitzen per alterar el flux normal d'execució dels bucles i les estructures de control.
- Instrucció
break
breakDescripció
La instrucció break s'utilitza per sortir immediatament d'un bucle (for, while, do-while) o d'una estructura switch. Quan es troba una instrucció break, el control del programa salta a la següent instrucció després del bucle o del switch.
Sintaxi
Exemple Pràctic
#include <iostream>
using namespace std;
int main() {
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // Surt del bucle quan i és igual a 5
}
cout << "i: " << i << endl;
}
cout << "Bucle finalitzat." << endl;
return 0;
}Explicació
En aquest exemple, el bucle for s'executa fins que i és igual a 5. Quan i arriba a 5, la instrucció break s'executa i el bucle es trenca, saltant a la següent instrucció després del bucle.
- Instrucció
continue
continueDescripció
La instrucció continue s'utilitza per saltar l'iteració actual d'un bucle i passar a la següent iteració. Quan es troba una instrucció continue, el control del programa salta a la següent iteració del bucle, ometent qualsevol codi restant en l'iteració actual.
Sintaxi
Exemple Pràctic
#include <iostream>
using namespace std;
int main() {
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
continue; // Salta les iteracions on i és parell
}
cout << "i: " << i << endl;
}
cout << "Bucle finalitzat." << endl;
return 0;
}Explicació
En aquest exemple, el bucle for s'executa de 0 a 9. Quan i és parell, la instrucció continue s'executa i el control del programa salta a la següent iteració del bucle, ometent el cout per als valors parells de i.
- Comparació entre
break i continue
break i continue| Instrucció | Funció | Exemple d'Ús |
|---|---|---|
break |
Surt immediatament del bucle o switch |
Surt d'un bucle for quan es compleix una condició específica |
continue |
Salta a la següent iteració del bucle | Omet les iteracions d'un bucle for per a valors específics |
- Exercicis Pràctics
Exercici 1
Escriu un programa que imprimeixi els números de l'1 al 10, però que s'aturi quan arribi al número 7.
Solució
#include <iostream>
using namespace std;
int main() {
for (int i = 1; i <= 10; i++) {
if (i == 7) {
break;
}
cout << "i: " << i << endl;
}
return 0;
}Exercici 2
Escriu un programa que imprimeixi els números de l'1 al 10, però que ometi els números parells.
Solució
#include <iostream>
using namespace std;
int main() {
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) {
continue;
}
cout << "i: " << i << endl;
}
return 0;
}
- Errors Comuns i Consells
Errors Comuns
- Ús incorrecte de
breakicontinue: Assegura't d'entendre quan utilitzarbreakper sortir d'un bucle icontinueper saltar a la següent iteració. - Bucle infinit: Un ús incorrecte de
continuepot provocar un bucle infinit si no es modifica la condició del bucle adequadament.
Consells
- Utilitza
breakper sortir de bucles quan es compleix una condició específica. - Utilitza
continueper ometre iteracions específiques d'un bucle sense sortir completament del bucle.
Conclusió
Les instruccions break i continue són eines poderoses per controlar el flux d'execució dels bucles en C++. Comprendre com i quan utilitzar-les pot ajudar-te a escriure codi més eficient i llegible. Practica amb els exercicis proporcionats per reforçar aquests conceptes i estar preparat per a situacions reals de programació.
Curs de Programació en C++
Mòdul 1: Introducció al C++
- Introducció al C++
- Configuració de l'Entorn de Desenvolupament
- Sintaxi i Estructura Bàsica
- Variables i Tipus de Dades
- Entrada i Sortida
Mòdul 2: Estructures de Control
Mòdul 3: Funcions
- Introducció a les Funcions
- Paràmetres de Funció i Tipus de Retorn
- Sobrecàrrega de Funcions
- Recursivitat
Mòdul 4: Arrays i Strings
Mòdul 5: Punteres i Referències
- Introducció als Punteres
- Aritmètica de Punteres
- Punteres i Arrays
- Referències
- Assignació Dinàmica de Memòria
Mòdul 6: Programació Orientada a Objectes
- Introducció a la POO
- Classes i Objectes
- Constructors i Destructors
- Herència
- Polimorfisme
- Encapsulació i Abstracció
Mòdul 7: Temes Avançats
- Plantilles
- Gestió d'Excepcions
- Entrada/Sortida de Fitxers
- Biblioteca de Plantilles Estàndard (STL)
- Expressions Lambda
- Multifil
