Brazilian Flag American Flag

Back Home Page

Published
Last modified

Break e Continue em C/C++

Controlando o fluxo de seu algoritmo com pontos de parada repentinos ou avanço para direto para o próximo item em uma estrutura de repetição. Aprenda para que serve o BREAK e CONTINUE.

Comando BREAK

O comando BREAK é utilizado basicamente em conjunto com duas estruturas - as estruturas de iteração (FOR, WHILE e DO WHILE) e com o SWITCH.

O break é utilizado para sair abruptamente da estrutura. Por exemplo, se estivermos em uma iteração (repetição) e um tal resultado ocorrer, o programa deve sair da iteração. Em muito casos devemos utilizar isso. Pois nem sempre é possível que uma iteração possa ir até o fim.

Para ficar mais simplificado, vejamos o exemplo:

#include <iostream>
#include <cstdlib>
using namespace std;

int main (void){
    int i;
    for (i=1; i<=1000; i++) //i vai de 1 a 1000
    {
        cout <<i<<"\n";
    }
    cout <<"1a Sequencia - nao tem break - vai de 1 a 1000\n";
    system ("pause");
    for (i=1; i<=1000; i++) //i vai de 1 a 1000
    {
        cout <<i<<"\n";
        if (i==200) //se i for 200
            break; //sair da iteração
    }
    cout <<"\n2a Sequencia - tem break - vai de 1 a 200, ";
    cout <<"mesmo que tenha que acabar em mil\n";
    system ("pause");
    return EXIT_SUCCESS;
} 

Na primeira iteração definimos: i deve começar em 1 e deve contar até que i seja menor ou igual a 1000. Como podemos ver, esta iteração vai de 1 a 1000.

Na segunda iteração definimos a mesma coisa: i deve começar em 1 e deve contar até que i seja menor ou igual a 1000. Mas aqui, colocamos a seguinte condição: se i for igual a 200, então saia da iteração (break). A iteração ainda continua sendo de 1 a 1000. Mas vai apenas de 1 a 200, pois quando chega a 200 o break é ativado.

Comando Continue

O comando continue se parece com o comando break, mas a diferença é que ele apenas ignora o resto do bloco de dados de uma iteração.

Vamos imaginar um programa que deve retornar apenas os múltiplos de 5 de uma sequência dada pelo usuário. Então, temos que verificar número por número e devemos ignorar todos os números que não são múltiplos de 5. Vejamos os exemplos:

#include <iostream>
#include <cstdlib>
using namespace std;

int main (void){
    int inicio, limite, i;
    cout <<"Digite o inicio da sequencia: ";
    cin >> inicio;
    cin.ignore ();
    cout <<"Digite o limite da sequencia: ";
    cin >> limite;
    cin.ignore ();
    if (inicio>=limite){
        cout <<"\aO limite deve se maior que o inicio";
        main ();
    }
    for (i=inicio;i<=limite;i++){
        if ((i%5)!=0) // se não for divisível por 5
            continue; // ignora o resto e continua com o for
        cout <<i<<"\n";
    }
    cout <<"Sequencia com continue - mostra apenas multiplos de 5\n";
    system ("pause");
    return EXIT_SUCCESS;
}

Como podemos ver, sempre que um número não for múltiplo de 5 (ou não é divisível por 5), o programa deve ignorar o resto do bloco do for e repetir o código com o número seguinte. É como se o resto do código nem estivesse lá.


Creative Commons License
Break e Continue em C/C++ by Denys Xavier is licensed under a Creative Commons Attribution 4.0 International License.