Búsqueda personalizada
Curso de lenguaje C
 Principal
 Inicio
 Libros
 Librerías
 Mapa Web
 
 Recursos
 Artículos
 Cursos
 Ejercicios
 Guías de uso
 Mini Diccionario 
  
 Sintaxis
 ANSI C
 Ordinogramas
 Pascal
 Pseudocódigo 
  
 Acerca de
 Carlos Pes
 Colaboradores
 Taller de ideas 
  
 Sitios Amigos
 Blogs,...
 Informática,...
 Directorios,...
 Empresas,...
 Gente,...
 Ocio,...
 Tutoriales,...
  
 Mis Blogs en
 Blogger
 BuscoAfiliados 
  
 Contenidos > 4.1 Instrucción break
En lenguaje C, para escribir una instrucción de salto break (interrumpir), se utiliza la sintaxis:


   break;
 

La instrucción de salto break se usa para interrumpir (romper) la ejecución normal de un 
bucle, es decir, la instrucción break finaliza (termina) la ejecución de un bucle y, por tanto, el control del programa se transfiere (salta) a la primera instrucción después del bucle.

Ejemplo 1: Estúdiese el siguiente código fuente:

#include <stdio.h>

int main()
{

   int n, a;

   a = 0;
   do
   {
      printf( "Introduzca un numero entero: " );
      scanf( "%d", &n );

      if ( n == 0 )
      {
         printf( "ERROR: El cero no tiene opuesto.\n" );
         break;
         /* En el caso de que n sea un cero,
            el bucle se interrumpe. */
      }
      printf( "El opuesto es: %d\n", -n );
      a += n;
   } while ( n >= -10 && n <= 10 );

   printf( "Suma: %d", a );


   return 0;
}


El programa puede ser la solución del problema siguiente:

Escriba un programa que:

1º) Pida por teclado un número (dato entero).
2º) Si el número introducido por el usuario es distinto de cero, muestre por pantalla el mensaje:
  • "El opuesto  es: <-número>".
3º) Repita los pasos 1º y 2º, mientras que, el usuario introduzca un número mayor o igual que -10 y menor o igual que 10.
Pero, si el usuario introduce un cero, el bucle también finaliza, mostrándose por pantalla el mensaje:
  • "ERROR: El cero no tiene opuesto.".
4º) Muestre por pantalla la suma de los números introducidos por el usuario.

En pantalla:


   Introduzca un número entero: 15

   El opuesto es: -15


   Suma: 15


 

La traza del programa es:

 
Secuencia:
 
Acción (instrucción):
Valor de:
a n
1 a = 0 0 ?
Inicio de la iteración 1.
2 printf( "Introduzca un número entero:" ) 0 ?
3 scanf( "%d",n ) 0 15
4 (Comprobar si == 0) 0 15
La condición de la alternativa simple (if) es falsa.
5 printf( "El opuesto es: %d\n", -n ) 0 15
6 a += n 15 15
Fin de la iteración 1.
7 (Comprobar si >= -10 && n <= 10) 15 15
La condición del bucle (do...while) es falsa.
El bucle finaliza después de 1 iteración.
8 printf( "Suma: %d", a ) 15 15

Figura. Traza del ejemplo 1.

El bucle ha finalizado porque la condición
>= -10 && n <= 10 ) es falsa, ya que, 15 no es mayor o igual que -10 y menor o igual que 10.

Sin embargo, el bucle también puede finalizar, no porque sea falsa la condición  ( 
>= -10 && n <= 10 ), sino, porque se ejecute la instrucción break. Esto ocurrirá cuando el usuario introduzca un cero. Por ejemplo:


   Introduzca un número entero: 8

   El opuesto es: -8


   Introduzca un número entero: -7

   El opuesto es: 7


   Introduzca un número entero: 0

   ERROR: El cero no tiene opuesto.


   Suma: 1

 

La traza en este caso es:

 
Secuencia:
 
Acción (instrucción):
Valor de:
a n
1 a = 0 0 ?
Inicio de la iteración 1.
2 printf( "Introduzca un número entero:" ) 0 ?
3 scanf( "%d",n ) 0 8
4 (Comprobar si == 0) 0 8
La condición de la alternativa simple (if) es falsa.
5 printf( "El opuesto es: %d\n", -n ) 0 8
6 a += n 8 8
Fin de la iteración 1.
7 (Comprobar si >= -10 && n <= 10) 8 8
La condición del bucle (do...while) es verdadera.
Inicio de la iteración 2.
8 printf( "Introduzca un número entero:" ) 8 8
9 scanf( "%d",n ) 8 -7
10 (Comprobar si == 0) 8 -7
La condición de la alternativa simple (if) es falsa.
11 printf( "El opuesto es: %d\n", -n ) 8 -7
12 a += n 1 -7
Fin de la iteración 2.
13 (Comprobar si >= -10 && n <= 10) 1 -7
La condición del bucle (do...while) es verdadera.
Inicio de la iteración 3.
14 printf( "Introduzca un número entero:" ) 1 -7
15 scanf( "%d",n ) 1 0
16 (Comprobar si == 0) 1 0
La condición de la alternativa simple (if) es verdadera.
17 printf( "ERROR: El cero no tiene opuesto." ) 1 0
18 break 1 0
El bucle (do...while) se interrumpe en la 3ª iteración.
El control del programa se transfiere (salta)
 a la primera instrucción después del bucle.
19 printf( "Suma: %d", a ) 1 0

Figura. Traza del ejemplo 1.

Normalmente, cuando en un bucle se utiliza una instrucción break, la ejecución de ésta se condiciona.

En el ejemplo 1, el bucle se interrumpe si la condición ( 
== 0 ) es verdadera. Nótese que, dicha condición no está contemplada en la condición de salida estándar del bucle, por lo que, a la condición ( == 0 ) se le considera condición de salida interna del bucle.

Ejemplo 2: No obstante, el problema también se puede resolver sin hacer uso de la instrucción break:

#include <stdio.h>

int main()
{

   int numero, acumulador;

   acumulador = 0;
   do
   {
      printf( "Introduzca un numero entero: " );
      scanf( "%d", &numero );

      if ( numero == 0 )
      {
         printf( "ERROR: El cero no tiene opuesto.\n" );
      }
      else
      {
         printf( "El opuesto es: %d\n", -numero );
         acumulador += numero;
      }

   } while ( numero >= -10 && numero <= 10 && numero != 0 );

   printf( "Suma: %d", acumulador );


   return 0;
}


Obsérvese que, en este programa, sí se contempla en la condición de salida del bucle la posibilidad de que el usuario teclee un cero, en cuyo caso, el bucle deja de iterar de forma natural.

Los resultados por pantalla de este código fuente son idénticos a los del código anterior.

Por otra parte, en lenguaje C, como ya vimos en el apartado 2.3 Alternativa múltiple (la instrucción switch), la instrucción break también se usa para interrumpir (salir de) una alternativa múltiple.
 Más información
Texto extraído del libro DOMINE LA PROGRAMACIÓN EN LENGUAJE C.
 Contenidos > Apartado siguiente
4.2 Instrucción continue
 A destacar
Cursos Ejercicios Libros Enlaces Recomendados
Curso Diseño de Algoritmos
Curso Informática Básica
Curso Ingeniería del Software
Curso Marketing en Internet
Curso Lenguaje C
Curso Turbo Pascal
Curso Representación Datos
Ejercicios de Algoritmos
Ejercicios de Lenguaje C
Ejercicios de Ordinogramas
Ejercicios de Pascal
Empezar de cero a programar en lenguaje C
Domine la programación en lenguaje C
Empezar de cero a programar en Pascal
Tutoriales y Cursos
Gane dinero con su web
Comprar dominio
Programación Informática
100% Adsense
Búsqueda personalizada
 Más Webs Interesantes
© 2006-2008 CarlosPes.com