Codificación aprenderaprogramar.com: CU00181A
INSTRUCCIÓN SALIRHACER E INSTRUCCIÓN HACER … REPETIR
La instrucción SalirHacer se usa para provocar una salida forzada de un bucle Hacer ... Repetir Mientras. El flujo del programa salta a la instrucción inmediatamente posterior al Repetir Mientras que marca la terminación del bucle. En el caso de bucles anidados SalirHacer afecta únicamente al bucle que está en proceso cuando se llega a esa instrucción de salida. Su uso antes o después de un bucle Hacer ... Repetir Mientras no tiene ningún efecto al carecer de sentido.
SalirHacer puede encontrarse en cualquier punto intermedio entre el Hacer y Repetir Mientras. Normalmente irá después de evaluar una situación que evoluciona a medida que lo hace el bucle, y que es la desencadenante de la salida.
Disponer de la orden SalirHacer nos va a permitir introducir una variante de la instrucción Hacer ... RepetirMientras. Dicha variante es esa misma instrucción pero sin la condición de salida Mientras. La sintaxis es la ya conocida:
Hacer Instrucción 1 Instrucción 2 . . . Instrucción n Repetir |
Queda claro que dentro del bucle habrá de existir una vía de salida a través de un SalirHacer, ya que en caso contrario el número de repeticiones sería infinito.
Ejemplo de uso de SalirHacer y de Hacer ... Repetir.
1. Inicio [Mensaje si se acierta número secreto - aprenderaprogramar.com] 2. Leer Secretcode [Valor del número secreto] 3. Hacer Mostrar “Introduzca número secreto” Pedir Numero Si Numero = Secretcode Entonces Mostrar “Bienvenido. Su clave para operar será 685297” SalirHacer SiNo Mostrar “Número erróneo” i = i + 1 Si i > 19 Entonces Mostrar “Excedido número de pruebas disponibles. Acceso denegado” SalirHacer FinSi FinSi Repetir 4. Fin |
Téngase en cuenta que este programa puede ser construido sin demasiada dificultad usando un Hacer ... Repetir Mientras sin necesidad de usar SalirHacer.
En este algoritmo aparte de la “salida obligatoria” que todo bucle Hacer... Repetirdebe tener, se ha incluido otra de seguridad. Algunos sistemas informáticos trabajan en continuo con repeticiones indefinidas. Piénsese por ejemplo en un ordenador a cargo de una red de cajeros automáticos: recibe datos, realiza procesos y vuelve a la “situación de espera”. En estos casos no hay salida excepto para circunstancias muy específicas controladas por el usuario.
Como venimos haciendo con las instrucciones anteriores propondremos:
· Evitar el uso de SalirHacer siempre que sea posible.
· Recordar lo expuesto en la introducción a la modificación directa del flujo de programas.
Para acceder a la información general sobre este curso y al listado completo de entregas pulsa en este link: Ver curso completo.
Para hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.