|
|
|
|
|
|
CarlosPes.com
> Curso
de Diseño de Algoritmos
> Instrucción continuar |
|
Instrucción
continuar
|
|
|
|
|
¿Qué es
una instrucción de control de salto continuar?
|
|
En
pseudocódigo, para escribir una instrucción
de salto continuar, se utiliza la sintaxis: |
|
|
|
La
instrucción de salto continuar siempre se usa para
interrumpir (romper) la ejecución normal de un bucle. Sin
embargo, el control del programa no se transfiere a la primera
instrucción después del bucle (como sí
hace la instrucción interrumpir), es decir, el bucle no
finaliza, sino que, finaliza la iteración en curso,
transfiriéndose el control del programa a la
condición de salida del bucle, para decidir si se debe
realizar una nueva iteración o no.
Por tanto, la instrucción continuar finaliza (termina) la
ejecución de una iteración de un bucle, pero, no
la ejecución del bucle en sí. De forma que, la
instrucción continuar salta (no ejecuta) las instrucciones
que existan después de ella, en la iteración de
un bucle.
Ejemplo 1: En el algoritmo siguiente se muestra como se puede
utilizar
la instrucción continuar: |
|
algoritmo
Numeros_opuestos_del_menos_10_al_mas_10
variables
entero n, a
inicio
a ← 0
hacer
escribir(
"Introduzca un número entero: " )
leer( n )
si ( n = 0 )
escribir( "ERROR: El cero no tiene opuesto." )
continuar
/* En el caso de que n sea un cero,
la iteración en curso del bucle
se interrumpe aquí. */
fin_si
escribir( "El
opuesto es: ", -n )
a ← a + n
mientras ( n >= -10 y n <= 10 )
escribir( "Suma: ", a )
fin |
|
|
El
código del algoritmo es el mismo que el del ejemplo 1 del
apartado anterior, "Instrucción
interrumpir", excepto
por la
instrucción interrumpir, que ha sido sustituida por la
instrucción continuar. El algoritmo puede ser la
solución para el problema siguiente, el cual se diferencia
del ejemplo 1 del apartado anterior en que si el usuario introduce un
cero, el bucle no deja de iterar.
Diseñe el agoritmo de 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>".
En caso contrario, muestre el mensaje:
"ERROR: El cero no tiene opuesto.".
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.
4º) Muestre por pantalla la suma de los números
introducidos por el usuario.
En pantalla: |
|
Introduzca un número
entero: 2
El opuesto es: -2
Introduzca un número entero: 0
ERROR: El cero no tiene opuesto.
Introduzca un número entero: -59
El opuesto es: 59
Suma: -57 |
|
|
La
traza del algoritmo es: |
|
|
|
La
instrucción continuar se ejecuta cuando el usuario introduce
un cero, interrumpiendo la iteración en curso; pero, el
bucle solamente finaliza cuando la condición ( n >=
-10 y n <= 10 ) sea falsa.
Normalmente, al igual que ocurre con la instrucción
interrumpir, cuando en un bucle se utiliza una instrucción
continuar, la ejecución de ésta
también se condiciona.
En el ejemplo 1, la iteración en curso del bucle se
interrumpe si es verdadera la condición ( n = 0 ).
Ejemplo 2: No obstante, el problema también se puede
resolver sin hacer uso de la instrucción continuar: |
|
algoritmo Numeros_opuestos_del_menos_10_al_mas_10
variables
entero numero, acumulador
inicio
acumulador ← 0
hacer
escribir( "Introduzca un número entero: " )
leer( numero )
si ( numero = 0 )
escribir( "ERROR: El cero no tiene opuesto." )
sino
escribir( "El opuesto es: ", -numero )
acumulador ← acumulador + numero
fin_si
mientras ( numero >= -10 y numero <= 10 )
escribir( "Suma: ", acumulador )
fin |
|
|
Los resultados por pantalla de este algoritmo son idénticos a los del algoritmo anterior. |
|
|
|
|
|
|
|
|