|
|
| Contenidos > 11.2
Instrucción continuar |
|
|
| 11.2 Instrucción
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, 11.1
Instruccion 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:
Secuencia: |
Acción
(instrucción): |
Valor
de:
|
|
|
a |
n |
| 1 |
a ← 0 |
0 |
? |
|
Inicio
de la iteración 1. |
|
|
| 2 |
escribir( "Introduzca
un número entero:"
) |
0 |
? |
| 3 |
leer( n ) |
0 |
2 |
| 4 |
(Comprobar
si n = 0) |
0 |
2 |
|
La
condición de la alternativa simple es falsa. |
|
|
| 5 |
escribir( "El
opuesto es: ", -n
) |
0 |
2 |
| 6 |
a ← a
+ n |
2 |
2 |
|
Fin
de la iteración 1. |
|
|
| 7 |
(Comprobar
si n >= -10 y n <= 10) |
2 |
2 |
|
La
condición del bucle es verdadera.
Inicio de la iteración 2. |
|
|
| 8 |
escribir( "Introduzca
un número entero:"
) |
2 |
2 |
| 9 |
leer( n ) |
2 |
0 |
| 10 |
(Comprobar
si n = 0) |
2 |
0 |
|
La
condición de la alternativa simple es verdadera. |
|
|
| 11 |
escribir( "ERROR: El
cero no tiene opuesto."
) |
2 |
0 |
| 12 |
continuar |
2 |
0 |
|
La
2ª iteración se interrumpe (finaliza)
aquí.
El control del programa se transfiere (salta) a la
condición de salida del
bucle. |
|
|
| 13 |
(Comprobar
si n >= -10 y n <= 10) |
2 |
0 |
|
La
condición del bucle es verdadera.
Inicio de la iteración 3. |
|
|
| 14 |
escribir( "Introduzca
un número entero:"
) |
2 |
0 |
| 15 |
leer( n ) |
2 |
-59 |
| 16 |
(Comprobar
si n = 0) |
2 |
-59 |
|
La
condición de la alternativa simple es falsa. |
|
|
| 17 |
escribir( "El
opuesto es: ", -n
) |
2 |
-59 |
| 18 |
a ← a
+ n |
-57 |
-59 |
|
Fin
de la iteración 3. |
|
|
| 19 |
(Comprobar
si n >= -10 y n <= 10) |
-57 |
-59 |
|
La
condición del bucle es falsa.
El bucle finaliza después de 3 iteración. |
|
|
| 20 |
escribir( "Suma: ", a ) |
-57 |
-59 |
Figura. Traza
del ejemplo 1.
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.
|
|
|
|
|
|
|