Un
ciclo for también puede ser interrumpido o finalizado antes de terminar su
proceso por una condición que le entreguemos. Un ejemplo de ello sería algo
así:
For a
= 1 to 10 Step 1
TextWindow.WriteLine(a)
EndFor
Este
simple bucle o ciclo, mostrará los números del 1 al 10, pero que pasa si por
algún motivo queremos que finalice a la mitad, una opción es utilizar la
instrucción goto, la cual podemos utilizar en combinación de una condicional
if, para hacer que finalice. Esto quedaría de la siguiente manera
For a
= 1 to 10 Step 1
TextWindow.WriteLine(a)
If a = 5 Then
Goto salir
EndIf
EndFor
salir:
Entonces,
cuando la variable "a" sea igual a 5, la instrucción goto llevará el
flujo del programa fuera del bucle, provocando la finalización de éste. Finalizar
un ciclo antes de que termine es muy util cuando ya encontramos o damos con el
resultado que queremos, como por ejemplo si estamos verificando si un número es
primo o no. Al hacer las divisiones del número que queremos comprobar(si es
divisible por 2,3,4,5,6 etc), si encontramos que este número es divisible por
un x número, entonces no es necesario seguir haciendo las otras divisiones ya
que sabemos que el número no es primo, por lo que finalizar el bucle es una
buena opción. Estuve averiguando en la web y me encontré que en otros
lenguajes, donde no está disponible la instrucción goto, se utiliza la
instrucción break, (romper) la cual hace que el bucle finalice.
CICLOS
ANIDADOS
El
ciclo o bucle for también puede ser anidado y se pueden conseguir algunas cosas
interesantes, como por ejemplo el siguiente código
For a = 1 to 10 Step 1
For b = 1 To 10 Step 1
TextWindow.WriteLine(a + " x " + b + " = " + a*b)
EndFor
EndFor
En solo 5 líneas es posible mostrar la
tabla de multiplicar del 1 hasta la tabla del 10
Algo
que me costó entender es como funciona un for anidado así que aquí voy a tratar
de explicarlo.
Aquí
se entra al ciclo, el "for" exterior , el cual hará 10 ciclos
For a = 1 to 10 Step
1
Luego,
pasamos al ciclo "for" interior, el cual también hará 10 ciclos. Por
cada 10 ciclos interiores, se ejecutará un ciclo exterior.
For b =
1 To 10 Step 1
Entonces,
como se muestra a continuación, la sección marcada con la flecha negra (bucle
interior) se ejecuta 10 veces, sale del ciclo (bucle interior) y recién
entonces el bucle exterior hace 1 ciclo. Siendo entonces que la variable
"a" (del ciclo exterior) cambia su valor de 1 a 2 y este ejercicio
ocurre hasta que la variable "a" sea igual a 10, que es entonces que
finaliza el ciclo. Es por esta razón que se muestran las tablas de multiplicar
del 1 al 10
Otro
programa interesante que se puede lograr con ciclos for anidados, es un
programa que ordena una lista de números de menor a mayor, utilizando lo que se
conoce como el ordenamiento de la burbuja
(más información acá). A continuación un ejemplo que ordena una lista de 5
números de menor a mayor:
(Este
programa utiliza arreglos. Los
arreglos serán explicados en el capítulo 12)
For i = 1 To 5
TextWindow.Write("Ingresa numero ")
a[i] = TextWindow.ReadNumber()
EndFor
For i = 1 To 5
For j = 0 To 5 - i
If a[j] > a[j + 1] Then
aux = a[j]
a[j] = a[j + 1]
a[j + 1] = aux
EndIf
EndFor
EndFor
TextWindow.WriteLine(a[1] +
"," + a[2] + "," + a[3] + "," + a[4] +
"," + a[5])
Esto es todo por ahora. En el próximo capítulo se mostrará otra instrucción para crear ciclos. Hasta luego
Muy explicativos excelente.
ResponderEliminar