|
CarlosPes.com
> Curso
de Diseño de Algoritmos
> Errores en un Bucle Mientras |
|
Errores en un Bucle Mientras
|
|
|
|
|
¿Qué
errores pueden producirse en un bucle mientras?
|
|
En
este apartado vamos a ver varios ejemplos de posibles errores que se
pueden cometer al escribir un bucle mientras, tomando como referencia
el ejemplo del apartado anterior, "Cambios en
un Bucle Mientras".
Ejemplo 1: Un pequeño descuido, como
por ejemplo, no
escribir de forma correcta la condición del bucle, puede
producir un bucle infinito: |
|
algoritmo Numeros_del_10_al_1
variables
entero contador
inicio
contador ←
10
/* Cambio 1 */
mientras ( contador <= 10 ) /*
Descuido */
escribir( contador )
contador ←
contador - 1 /* Cambio 3 */
fin_mientras
fin |
|
|
Por
pantalla se mostrará: |
|
|
|
Ejemplo
2: Otro error muy
frecuente es inicializar mal la variable que participa en la
condición del bucle: |
|
algoritmo Numeros_del_10_al_1
variables
entero contador
inicio
contador ←
1
/* Descuido */
mientras ( contador >= 1
) /* Cambio 2 */
escribir( contador )
contador ←
contador - 1 /* Cambio 3 */
fin_mientras
fin |
|
|
Por
pantalla sólo se mostrará el número 1: |
|
|
|
Ejemplo
3:
También es un error muy típico olvidarse de
escribir alguna instrucción, como por ejemplo, la
instrucción de asignación
contador ← contador - 1
del bloque de instrucciones del bucle: |
|
algoritmo Numeros_del_10_al_1
variables
entero contador
inicio
contador ←
10
/* Cambio 1 */
mientras ( contador >= 1
) /* Cambio 2 */
escribir( contador )
/* Descuido */
fin_mientras
fin |
|
|
De
nuevo, por pantalla, se obtiene la salida de un bucle infinito: |
|
|
|
Ejemplo
4: Como ya se ha
dicho, un bucle mientras puede iterar cero o más veces.
Así, por ejemplo, en el algoritmo siguiente existe un error
lógico que
provoca que el bucle no itere ninguna vez. |
|
algoritmo Numeros_del_10_al_1
variables
entero contador
inicio
contador ←
0
/* Descuido */
mientras ( contador >= 1
) /* Cambio 2 */
escribir( contador )
contador ←
contador - 1 /* Cambio 3 */
fin_mientras
fin |
|
|
Por
pantalla no se mostrará nada: |
|
|
|
En
este
caso, se ha producido un error lógico, ya que, para que el
bucle
iterase diez veces, se debería haber asignado a la variable
contador el valor 10, en vez del 0. No obstante, bajo determinadas
circunstancias, sí puede tener sentido hacer uso de un bucle
mientras, el cual pueda no iterar ninguna vez. |
|