Percursos
/
Julia
Julia
/
Programa
/
Condicionais
Co

Condicionais em Julia

7 exercícios

Sobre Condicionais

Operadores de comparação

Os operadores de comparação em Julia são semelhantes aos de muitas outras linguagens, mas com algumas opções extra para quem gosta de matemática.

Para a igualdade, os operadores são == (igual) e != ou ≠ (diferente).

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

Além disso, temos os vários operadores de maior e 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 acontece muitas vezes com Julia, um editor adequado facilita o uso do símbolo matemático. Escreve \ne, \le ou \ge e depois TAB para obteres ≠, ≤ ou ≥.

O exemplo anterior usa apenas números, mas vamos ver noutras partes do currículo que vários tipos adicionais têm uma noção de ordem e podem ser testados com maior/menor que.

Os operadores de comparação podem ser encadeados, o que permite uma sintaxe clara e concisa:

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

O exemplo anterior é sinónimo de 1 ≤ n && n ≤ 5.

Ramificação com if

Esta é a forma completa de uma condicional if:

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

Não é preciso usar parênteses () nem chavetas {}, e a indentação serve "apenas" para melhorar a legibilidade (mas a legibilidade é muito importante!).

Tanto o elseif como o else são opcionais, e pode haver vários blocos elseif. No entanto, o end é obrigatório.

É possível aninhar condicionais if, embora possas querer ajudar a legibilidade com um uso ponderado de parênteses, indentação e comentários.

A forma mais curta de uma condicional if seria algo assim:

if n < 0
    n = 0
end

Como lembrete: só as expressões que são avaliadas como true ou false podem ser usadas como condicionais. Julia evita deliberadamente qualquer conceito de "truthiness", por isso valores zero, strings vazias e arrays vazios não são equivalentes a false.

Operador ternário

Uma situação simples e comum é escolher um de dois valores com base numa condição.

Tal como muitas linguagens, Julia tem um operador ternário para tornar isto mais conciso.

A sintaxe é conditional ? value_if_true : value_if_false.

Por isso, o exemplo anterior pode ser reescrito assim:

n = n < 0 ? 0 : n

O compilador não exige parênteses, mas estes podem melhorar a legibilidade.

Julia tem uma instrução match?

De momento, não existe nenhuma estrutura match/case na linguagem base.

Para casos simples, recomenda-se o uso de if..elseif..else.

Para correspondência de padrões mais sofisticada, à semelhança de Scala, o pacote Match.jl é popular. No entanto, como acontece com a maioria dos pacotes de terceiros, o Match não está disponível no test runner do Exercism.

Editar via GitHub A ligação abre numa nova janela ou separador

Aprende Condicionais

A prática está bloqueada

Desbloqueia mais 5 exercícios para praticares Condicionais