Tracks
/
Julia
Julia
/
Temario
/
Condicionales
Co

Condicionales en Julia

7 ejercicios

Acerca de Condicionales

Operadores de comparación

Los operadores de comparación en Julia son similares a los de muchos otros lenguajes, aunque con algunas opciones extra para los amantes de las matemáticas.

Para la igualdad, los operadores son == (igual) y != o ≠ (distinto).

txt = "abc"
txt == "abc"  # true
txt != "abc"  # false
txt ≠ "abc"  # false (synonym for !=)

Además, tenemos los distintos operadores de mayor y menor que.

1 < 3  # true
3 > 3  # false
3 <= 3  # true
3 ≤ 3  # true (synonym for <=)
4 >= 3  # true
4 ≥ 3  # true (synonym for >=)

Como suele ocurrir con Julia, un editor adecuado facilita el uso del símbolo matemático. Escribe \ne, \le o \ge y luego TAB para obtener ≠, ≤ o ≥.

El ejemplo anterior solo usa números, pero veremos en otras partes del temario que varios tipos adicionales tienen un sentido de orden y se pueden comparar con mayor y menor que.

Los operadores de comparación se pueden encadenar, lo que permite una sintaxis clara y concisa:

n = 3
1 ≤ n ≤ 5  # true (n "between" two limits)

El ejemplo anterior es un sinónimo de 1 ≤ n && n ≤ 5.

Bifurcación con if

Esta es la forma completa de una instrucción if:

if conditional1
    statements...
elseif conditional2
    statements...
else
    statements...
end

No se necesitan paréntesis () ni llaves {}, y la indentación sirve «solo» para mejorar la legibilidad (¡pero la legibilidad es muy importante!).

Tanto elseif como else son opcionales, y puede haber varios bloques elseif. Sin embargo, el end es obligatorio.

Es posible anidar instrucciones if, aunque quizá quieras ayudar a la legibilidad con un uso meditado de paréntesis, sangrías y comentarios.

La forma más corta de una instrucción if sería algo así:

if n < 0
    n = 0
end

Como recordatorio: solo las expresiones que se evalúan a true o false se pueden usar como condicionales. Julia evita deliberadamente cualquier concepto de «truthiness», así que los valores cero, los strings vacíos y los arrays vacíos no son equivalentes a false.

Operador ternario

Una situación simple y común es elegir uno de dos valores en función de un condicional.

Julia, como muchos lenguajes, tiene un operador ternario para hacer esto más conciso.

La sintaxis es conditional ? value_if_true : value_if_false.

Así que el ejemplo anterior se podría reescribir:

n = n < 0 ? 0 : n

El compilador no exige paréntesis, pero pueden mejorar la legibilidad.

¿Tiene Julia una instrucción match?

Actualmente no hay ninguna estructura match/case que forme parte del lenguaje base.

Para casos simples, se recomienda usar if..elseif..else.

Para la coincidencia de patrones sofisticada, similar a Scala, el paquete Match.jl es popular. Sin embargo, como ocurre con la mayoría de los paquetes de terceros, Match no está disponible en el test runner de Exercism.

Editar en GitHub El enlace se abre en una nueva ventana o pestaña

Aprende Condicionales

La práctica está bloqueada

Desbloquea 5 ejercicios más para practicar Condicionales