3 Estructuras de control
3.1 Condicionales
if
condición 1
bloque código 1
elseif
condición 2
bloque código 2
…
else
bloque código n
end
La indentación de los bloques de código no es necesaria, pero es una buena práctica.
3.1.1 Ejemplo de condicional
> x = -1
julia-1
> if x > 0
julia= "positivo"
signo elseif x < 0
= "negativo"
signo else
= "nulo"
signo end
"negativo"
3.1.2 Operador condicional
Una forma abreviada de la estructura condicional es el operador condicional.
condición
?
bloque true:
bloque false
Este operador ejecuta el primer bloque de código si la condición es true
y el segundo en caso contrario.
> x > 0 ? signo = "positivo" : signo = "negativo"
julia"negativo"
3.2 Bucles
3.3 Bucles iterativos
for
iteradorin
secuencia
bloque código
end
Ejecuta el bloque de código tantas veces como elementos tenga la secuencia. En cada iteración el iterador toma como valor el siguiente elemento de la secuencia.
> c = "Julia"
julia"Julia"
> for i in c
juliaprintln(i)
end
J
u
l
i a
3.3.1 Bucles iterativos con rangos
En muchas ocasiones la secuencia que se recorre en un bucle iterativo se genera mediante un rango, que es una secuencia de números igualmente espaciados. Existen distintas funciones para generar rangos:
i:j
: Genera la secuenciad de números desdei
hastaj
.i:j:k
: Genera la secuencia de números desdei
hastak
dando saltos dej
.StepRange(i, j, k)
: Genera la secuencia de números desdei
hastak
dando saltos dej
.range(i, j, n)
: Genera una secuencia den
números desdei
hastaj
.
3.3.2 Ejemplo de bucles iterativos con rangos
> for i in 1:2:10
juliaprintln(i)
end
1
3
5
7
9
> for i = range(0, 10, 5)
juliaprintln(i)
end
0.0
2.5
5.0
7.5
10.0
3.3.3 Bucles iterativos anidados
En muchas ocasiones es habitual incluir un bucle iterativo en el bloque de código de otro bucle iterativo, lo que se conoce como bucles anidados.
Julia permite simplificar estas estructuras indicando los iteradores en la cabecera de un único bucle.
> for i in "abc", j = 1:2
juliaprintln(i,j)
end
a1
a2
b1
b2
c1 c2
3.4 Bucles condicionales
while
condición
bloque código
end
Repite la ejecución del bloque de código mientras que la condición sea cierta.
> x = 3
julia3
> while x >= 0
juliaprintln(x)
-= 1
x end
3
2
1
0
3.4.1 Interrupción de bucles
La instrucción break
provoca inmediatamente la finalización de un bucle tanto iterativo como condicional.
> x=3
julia3
> while true
juliaif x < 0
break
end
println(x)
-= 1
x end
3
2
1
0
3.4.2 Salto de bucles
La instrucción continue
provoca la finalización del bloque de código de un bucle y pasa inmediatamente a la siguiente iteración.
> for i in 1:10
juliaif i % 2 == 0
continue
end
println(i)
end
1
3
5
7
9