Hoy vamos a como implementar bucles en Julia y la selección con switch. Los bucles que podemos implementar en Julia, al igual que en el resto de los lenguajes, son básicamente dos for y while. Aunque ya hemos visto el segundo en la entrada anterior.
for en JuliaAl igual que nos suele en otras ocasiones la sintaxis de los bucles for en Julia es similar a la de Matlab. Simplemente se escribe la palabra for, seguida de una variable, el comando in o = y los valores sobre los que se desea iterar. Escribiendo el primero, dos puntos y el último. Remitiéndose el código que se escriba hasta que se encuentre el comando end. Así para imprimir los números de 1 a 10 solamente se tiene que escribir.
for i in 1:10
println(i)
end En Julia se puede escoger entre usar in o = entre la variable y los valores sobre los que se itera. Aunque es aconsejable usar in. Por otro lado, si se quiere iterar en pasos diferentes, solamente se tiene que indicar los pasos entre el primer y el último valor. Así para escribir los números entre 1 y 10 de cuatro en cuatro se puede usar el siguiente comando.
for i in 1:4:10
println(i)
end Los valores sobre los que se desea iterar no tienen porque estar ordenados, sino que pueden indicar en un vector fácilmente.
for i in [1, 4, 2]
println(i)
end El bucle for no tiene porque iterar sobre números, también lo puede hacer sobre cadenas de texto, evaluando en cada uno de los pasos un carácter. Por ejemplo, se pueden escribir los carates de la palabra hola con el código
for i in "Hola"
println(i)
end Una cosa importante para los usuarios que vienen de Matlab es que la variable i que se usa en el bucle no está definida fuera de el. Esto es, si llamamos a i tendremos un error ya que Julia nos dirá que i no esta definido. Algo que nos puede dar una pista de cómo gestiona el alcance de las variables Julia.
while en JuliaOtra de las estructuras más utilizadas para iterar sobre valores es while. El este caso el código se repite mientras se cumpla una condición. La forma básica de este comando es escribir while seguido de una condición lógica. En caso de que esta sea cierta se ejecuta el código hasta que se encuentra la palabra reservada end. Por otro lado, en el caso de que no sea cierta se sigue con el programa después del end. Por ejemplo, para imprimir los números entre 1 y 10 se puede hacer con
i = 0
while i < 10
println(i+=1)
end En este caso se inicializa la variable i a 0. En el bucle while se comprueba si i es menor que 10, en el primer caso es afirmativo, por lo que se ejecuta el código de impresión. En este se aumente cada vez un valor 1 antes de imprimir por pantalla, por lo que el primer resultados será 1.
A continuación, se vuelve a comprobar si el valor de i es menor de 10, cómo continúa siendo cierto, se vuelve a ejecutar el código. Lo que se repite 10 veces hasta que i es igual a 10.
Es importante recordar que en los bucles while es necesario actualizar el valor de la variable o variables empleadas en la comprobación durante la ejecución. Tanto sea de forma algorítmica como leyendo la información de otras fuentes. Ya que en caso contrario el código terminará en un bucle infinito. Lo que no es lo deseable en la mayoría de los casos.
En otros lenguajes existe una estrucutra que generalmente se llama do...while en la que siempre se ejecuta una vez el código. Algo que actualmente no soporta Julia de forma nativa.
break y continueHay dos comandos con los que es posible modificar el comportamiento de tanto de los bucles for como while: break y continue. El comando break para la ejecución del código dentro del los bucles y continúa con la ejecución después de estos. Por ejemplo:
for i in 1:10
if i > 5
break;
end
println(i)
end Este código solamente imprime los valores entre 1 y 5, no ente 1 y 10. Porque una vez que el valor de i es 6 mediante break se le indica a Julia que no es necesario continuar evaluando el bucle.
Por otro lado continue lo que hace es detener la ejecución de la iteración actual, pero continúa en el siguiente valor. Por ejemplo, el siguiente código imprime solamente los valores entre 5 y 10.
for i in 1:10
if i < 5
continue;
end
println(i)
end El uso de continue evita que se evalúe el comando println cuando i es menor que 5, pero el bucle no se interrumpe.
Es importante saber que tanto break como continue se pueden usar también en los bucles while.
for y whileComo en otros lenguajes no existe ningún problema para incluir un bucle for dentro de otro o de uno while. Aplicando lo mismo para los while. Julia sabrá reconocer que end corresponde con que for owhile
for i in 1:10
for j = 1:10
println(i, j)
end
end Una cosa curiosa, aunque no sea recomendable, es que podemos usar el mismo nombre de variable en el bucle for anidado dentro de otro. En ningún momento Julia confundida el valor de los dos. Aunque nosotros sí que nos podamos confundir.
for i in 1:2
println("for 1 ", i)
for i = 1:2
println("for 2 ", i)
end
end Tras esta introducción a los bucles en Julia podemos ver que no son muy diferentes a los que tenemos en Matlab, R o Python. Aunque existan diferencias en cuanto al alcance de las variables. No es posible acceder a las variables que se usan dentro de un bucle for fuera de ellos. Lo que permite que dos bucles anidados tengan la misma variable sin que esto genere problemas (para Julia no para los usuarios que puedan revisar en código así escrito).
El volumen de datos que las organizaciones generan y deben manejar crece día a día:…
Cuando escuchamos la palabra “azar”, pensamos en lo impredecible: una moneda que gira en el…
Una nueva vulnerabilidad crítica ha sido detectada en MLflow, la popular plataforma de código abierto…
En estadística, los valores atípicos —también llamados outliers— son esos datos que se alejan “demasiado”…
Vivimos en un mundo cada vez más digital, donde gestionamos decenas (o incluso cientos) de…
Aunque Python y JavaScript son lenguajes muy distintos en su propósito y ecosistema, no es…
This website uses cookies.