Sie sind auf Seite 1von 5

Instruccin break en Lenguaje C

http://www.carlospes.com/curso_de_lenguaje_c/04_01_instruccion_break.php

Para qu sirve la instruccin break en C?

En lenguaje C, para escribir una instruccin de salto break (interrumpir), se utiliza la sintaxis:

break;

La instruccin de salto break se usa para interrumpir (romper) la ejecucin normal de un bucle, es
decir, la instruccin break finaliza (termina) la ejecucin de un bucle y, por tanto, el control
del programa se transfiere (salta) a la primera instruccin despus del bucle.

Ejemplo 1: Estdiese el siguiente cdigo 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 solucin del problema siguiente:

Escriba un programa que:

1) Pida por teclado un nmero (dato entero).


2) Si el nmero introducido por el usuario es distinto de cero, muestre por pantalla el mensaje:
"El opuesto es: <-nmero>".

3) Repita los pasos 1 y 2, mientras que, el usuario introduzca un nmero mayor o igual que -10 y
menor o igual que 10.
Pero, si el usuario introduce un cero, el bucle tambin finaliza, mostrndose por pantalla el mensaje:

"ERROR: El cero no tiene opuesto.".

4) Muestre por pantalla la suma de los nmeros introducidos por el usuario.

En pantalla:

Introduzca un nmero entero: 15

El opuesto es: -15

Suma: 15

La traza del programa es:

El bucle ha finalizado porque la condicin ( 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 tambin puede finalizar, no porque sea falsa la condicin ( n >= -10 && n
<= 10 ), sino, porque se ejecute la instruccin break. Esto ocurrir cuando el usuario introduzca un
cero. Por ejemplo:

Introduzca un nmero entero: 8


El opuesto es: -8
Introduzca un nmero entero: -7

El opuesto es: 7

Introduzca un nmero entero: 0


ERROR: El cero no tiene opuesto.

Suma: 1

La traza en este caso es:


Normalmente, cuando en un bucle se utiliza una instruccin break, la ejecucin de sta se
condiciona.

En el ejemplo 1, el bucle se interrumpe si la condicin ( n == 0 ) es verdadera. Ntese que, dicha


condicin no est contemplada en la condicin de salida estndar del bucle, por lo que, a la
condicin ( n == 0 ) se le considera condicin de salida interna del bucle.

Ejemplo 2: No obstante, el problema tambin se puede resolver sin hacer uso de la


instruccin 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;
}

Obsrvese que, en este programa, s se contempla en la condicin 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 cdigo fuente son idnticos a los del cdigo anterior.

Por otra parte, en lenguaje C, como ya vimos en el apartado Instruccin switch en C, la


instruccin break tambin se usa para interrumpir (salir de) una alternativa mltiple.

Das könnte Ihnen auch gefallen