Instrução break (C++)
A instrução break encerra a execução do loop delimitador mais próximo ou da instrução condicional na qual ele aparece. O controle passa para a instrução que segue o encerramento da instrução, se houver.
break;
Comentários
A instrução break é usada com a instrução condicional switch e com as instruções de loop do, for e while.
Em uma instrução switch, a instrução break faz com que o programa execute a próxima instrução fora da instrução switch. Sem uma instrução break, cada instrução do rótulo case correspondente até o fim da instrução switch, incluindo a cláusula default, é executada.
Em loops, a instrução break encerra a execução da instrução delimitadora do, for ou while mais próxima. O controle passa para a instrução que segue a instrução encerrada, se houver.
Em instruções aninhadas, a instrução break encerra apenas a instrução do, for, switch ou while que a delimita imediatamente. Você pode usar uma instrução return ou goto para transferir o controle de estruturas mais profundamente aninhadas.
Exemplo
O código a seguir mostra como usar a instrução break em um loop for.
#include <iostream>
using namespace std;
int main()
{
// An example of a standard for loop
for (int i = 1; i < 10; i++)
{
cout << i << '\n';
if (i == 4)
break;
}
// An example of a range-based for loop
int nums []{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
for (int i : nums) {
if (i == 4) {
break;
}
cout << i << '\n';
}
}
O código a seguir mostra como usar break em um loop while e em um loop do.
#include <iostream>
using namespace std;
int main() {
int i = 0;
while (i < 10) {
if (i == 4) {
break;
}
cout << i << '\n';
i++;
}
i = 0;
do {
if (i == 4) {
break;
}
cout << i << '\n';
i++;
} while (i < 10);
}
O código a seguir mostra como usar break em uma instrução switch. Você deve usar break em todos os casos se desejar tratar cada caso separadamente; se break não for usada, a execução do código falhará no próximo caso.
#include <iostream>
using namespace std;
enum Suit{ Diamonds, Hearts, Clubs, Spades };
int main() {
Suit hand;
. . .
// Assume that some enum value is set for hand
// In this example, each case is handled separately
switch (hand)
{
case Diamonds:
cout << "got Diamonds \n";
break;
case Hearts:
cout << "got Hearts \n";
break;
case Clubs:
cout << "got Clubs \n";
break;
case Spades:
cout << "got Spades \n";
break;
default:
cout << "didn't get card \n";
}
// In this example, Diamonds and Hearts are handled one way, and
// Clubs, Spades, and the default value are handled another way
switch (hand)
{
case Diamonds:
case Hearts:
cout << "got a red card \n";
break;
case Clubs:
case Spades:
default:
cout << "didn't get a red card \n";
}
}