|
CarlosPes.com
> Curso
de Lenguaje C
> Instrucción break en Lenguaje C |
|
Instrucción break
en
Lenguaje C
|
|
|
|
|
¿Para qué
sirve la instrucción break en
C?
|
|
En
lenguaje C, para escribir una instrucción
de salto break (interrumpir), se utiliza la sintaxis: |
|
|
|
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: |
|
|
|
El
bucle ha finalizado porque la condición ( 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 ( 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: |
|
|
|
|
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 ( 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 ( 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 Instrucción
switch en C, la
instrucción break también se usa para
interrumpir
(salir de) una alternativa múltiple. |
|