Tutorial de Lenguaje C                                                                                               Dr. Roberto Gómez


LOS ENUNCIADOS BREAK Y CONTINUE

            1. causa la salida inmediata de dicha estructura
            2. ejecuciÓn programa continua con el primer enunciado después de la estructura
              1. salta los enunciados restantes del cuerpo de la estructura
            2. la ejecución continua con la siguiente iteración del ciclo
 


Comparación efectos break y continue en los ciclos

Bloque 0                                         Bloque 0                                                 Bloque 0
for(A; <c.1> ; B)                             while ( <c.1>)                                       do
        Bloque 1                                         Bloque 1                                                 Bloque 1
Bloque 2                                         Bloque 2                                                 while ( <c.1>)
                                                                                                                           Bloque 2

Recordatorio funcionamiento ciclos:

a) Bloque 0.                                             a) Bloque 0.                                         a) Bloque 0.
b) A.                                                          b) si <c.1> es verdad                        b) Bloque 1.
c) si <c.1> es verdad                                entonces                                         c) si <c.1> es verdad entonces
        entonces                                                     b.1) Bloque1.
                c.1) Bloque 1.                                      b.2) ir a b)                                             regresar a b)
                c.2) B.                                            si-no                                                       si-no
                c.3) ir a c)                                             ir a c)                                                     ir a d)
        sino                                                     c) Bloque 2.                                        d) Bloque 2.
                ir a d).
d) Bloque 2.
 

Efectos del break y del continue :

        La acción de un break en el bloque 1 es:
        ir a d).                         ir a c).                             ir a d).

        La acción de un continue en el bloque 1 es:
        ir a c.2).                     ir a b).                             ir a c).
 


prog16.c Ejemplo uso break

/* Ejemplo uso break en un enunciado for() */

#include <stdio.h>

int main()
{

                    int i;

                    for (i=0; i!10; i++)
                        {
                            if (i == 5)
                                    break;
                            printf(''%d'',i);
                        }
                    printf (''\n Fuera del ciclo con valor i: %d \n'',i);
}

Salida ejecución:
0 1 2 3 4

Fuera del ciclo con valor de i: 5
 


prog17.c Ejemplo uso continue

/* Ejemplo uso continue en un enunciado for() */
/* Objetivo: saltarse la impresion del numero 5 */

#include <stdio.h>

int main()
{
                    int i;

                    for (i=0; i!10; i++)
                          {
                            if (i == 5)
                                    continue;
                            printf(''%d'',i);
                          }
                    printf(''\n Fuera del ciclo con valor i: %d \n'',i);
}

Salida ejecución:
0 1 2 3 4 6 7 8 9

Fuera del ciclo con valor de i: 10

prog18.c Ejemplo uso break y continue

/* Cálculo cantidad de 0's, 1's y caracteres diferentes a uno o a ceros.*/
/* Con la secuencia 00 se imprime el número parcial de 0 y de 1; y */
/* con la secuencia 11 se da el resultado final */

#include  <stdio.h>

int main()

{

                    int n0,n1,nA;
                    char c;
                    n0=0; n1=0; nA=0 ;

                    scanf(''%c'',&c);
                    while (c!='nr')
                              {
                                if (c == '0')
                                        {
                                            n0 = n0+1;
                                            scanf(''%c'',&c);
                                            if(c=='0')
                                                {
                                                    n0 = n0+1;
                                                    printf(''n0=%d'',n0);
                                                    printf(''n1=%d \n'',n1);
                                                    scanf(''%c'',&c);
                                                    continue;
                                                }
                                        }
                                if (c=='1')
                                        {
                                            n1 = n1+1;
                                            scanf(''%c'',&c);
                                            if (c=='1')
                                                {
                                                     n1 = n1+1;
                                                     break;
                                                }
                                            else
                                                    continue;
                                            nA = nA+1;
                                            scanf(''%c'',&c);
                                        }
                    } /* del while */
                    printf(''n0=%d,n1=%d'',n0,n1);
                    printf('',nA=%d \n'',nA);
} /* del main() */
 

prog19.c Ejemplo break y continue dentro for y while

#include <stdio.h>

int main()
{
                    int i;

/* Ejemplo 1 */
/* El ciclo escribirá: ejemplo 1: 5 6 7 8 9 10 */

                    printf(''Ejemplo 1: '');
                    for (i=1; i <= 10; i++)
                     {
                                if(i < 5)
                                        continue;
                                printf(''%d '',i);
                      }

/* Ejemplo 2: */
/* Este ejemplo escibirá: ejemplo 2: 1 2 3 4 5 -6 */

                    printf(''\n Ejemplo 2:'');
                    for (i=1; i!=10; i=i+1)
                            {
                                if (i > 5)
                                        break;
                                printf('' %d'',i);
                            }
                    printf('' %d'',-i,);

/* Ejemplo 3 */
/* Este ejemplo escibirá: ejemplo 3: 3 7 11 -15 */

                    printf(''\n Ejemplo 3:'');
                    i=0;
                    do
                     {
                                i=i+3;
                                if( ( i % 2 )==0)
                                     {
                                            i=i-2;
                                            continue;
                                     }
                                if( ( i%5 )==0)
                                    break;
                                    printf(''%d'',i);
                    }
                    while (i !=100 );
                    printf('' %d %d \n'',-i);
}


Ejercicios break/continue

  1. Escriba un programa que capture 20 numeros. Si el número capturado es cero debe salir del ciclo y desplegar el mensaje "Se capturo el numero cero" asi como el resultado de la suma de los numeros capturados. Si el número es negativo este numero no debe contarse. Al final debe desplegar la suma de los numeros capturados. Usando las sentencias break y continue, implemente el programa anterior. 
  2. Utilizando la funcion break, escriba un programa que capture numeros. Si el numero es multiplo de cinco debe detener la captura de  numeros y desplegar la cantidad de numeros capturados.

 

MENÚ PRINCIPAL