PrInf13: Interrumpir bucles
| Práctica de Informática | |
|---|---|
| Cómo interrumpir bucles | |
| Práctica anterior | Siguiente práctica |
| Este artículo es un guión de prácticas de Informática | |
| |
Algunos métodos numéricos intentan buscar la solución a un problema entre los elementos de una matriz y un vector, que contienen todas las posibles soluciones. Una vez que se ha encontrado la solución, el bucle continuará inspeccionando el resto de los elementos que todavía no hayan sido evaluados. Pero si solo hay una solución, estas iteraciones del bucle son innecesarias, ya que sabemos que la solución no estará en esos valores. En este tipo de programas, es mejor interrumpir el bucle y dejar de hacer iteraciones. El uso de interrupciones de bucles debería ser minoritario. Los programas que abusan del uso de interrupciones son más difíciles de entender, y más propensos a contener fallos.
Contenido
1 Requisitos previos
Es importante haber realizado las dos prácticas sobre bucles con anterioridad a esta práctica:
2 Vídeos posteriores
Tras realizar esta práctica, el siguiente vídeo te ayudará a afianzar conocimientos:
3 Comandos que se aprenderán en esta práctica
| break | continue |
4 Contenido de la práctica
Vamos a ver primero un pequeño ejemplo de un programa que usa un bucle con interrupción, para ilustrar su uso. Primero, creamos un vector aleatorio con 20 elementos, entre 0 y 10 y sin parte decimal. Luego usamos un bucle para recorrer el vector y buscar la primera posición que contiene un número impar. Mientras el bucle no encuentre un número impar, sigue funcionando, escribiendo los números que va encontrando en la pantalla:v = fix(rand(1,20)*10); % Vector con 20 elementos entre 0 y 10
n = length(v); % Número de elementos del vector
for k=1:n
disp(v(k));
if rem(v(k),2) ~= 0
fprintf('He encontrado el primer número impar en la posición %d\n', k);
break; % El bucle termina aquí
end
endSi ejecutamos este programa muchas veces, cada vez obtendremos un resultado diferente. Es muy importante entender que esto solo es un ejemplo de cómo funciona break. Este programa tendría un mejor diseño si se realizara con un bucle while (mientras no encuentres un impar, sigue recorriendo el vector).
| |
Tarea: | Transforma el programa anterior para que use while, y no use ni for ni break |