Tracce
/
Julia
Julia
/
Programma
/
Condizionali
Co

Condizionali in Julia

7 esercizi

Informazioni su Condizionali

Operatori di confronto

Gli operatori di confronto in Julia sono simili a quelli di molti altri linguaggi, anche se con qualche opzione in più per gli amanti della matematica.

Per l'uguaglianza, gli operatori sono == (uguale) e != o ≠ (diverso).

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

Inoltre, ci sono i vari operatori di maggiore/minore.

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

Come spesso accade con Julia, un editor adatto rende facile usare i simboli matematici. Digita \ne, \le o \ge e poi TAB per ottenere ≠, ≤ o ≥.

L'esempio precedente usa solo numeri, ma vedremo in altre parti del percorso che vari altri tipi hanno un senso di ordinamento e possono essere confrontati con gli operatori di maggiore o minore.

Gli operatori di confronto si possono concatenare, il che permette una sintassi chiara e concisa:

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

L'esempio precedente è un sinonimo di 1 ≤ n && n ≤ 5.

Diramazioni con if

Questa è la forma completa di un'istruzione if:

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

Non c'è bisogno di parentesi tonde (()) né di parentesi graffe ({}), e l'indentazione serve «solo» a migliorare la leggibilità (ma la leggibilità è molto importante!).

Sia elseif che else sono opzionali, e possono esserci più blocchi elseif. Tuttavia, l'end è obbligatorio.

È possibile annidare istruzioni if, anche se per aiutare la leggibilità conviene usare con cura parentesi, rientri e commenti.

La forma più breve di un'istruzione if è qualcosa del genere:

if n < 0
    n = 0
end

Come promemoria: solo le espressioni che danno come risultato true o false possono essere usate come condizioni. Julia evita deliberatamente qualsiasi concetto di «truthiness», quindi i valori zero, le stringhe vuote e gli array vuoti non sono equivalenti a false.

Operatore ternario

Una situazione semplice e comune è scegliere uno tra due valori in base a una condizione.

Julia, come molti linguaggi, ha un operatore ternario che rende tutto più conciso.

La sintassi è conditional ? value_if_true : value_if_false.

Quindi l'esempio precedente si può riscrivere così:

n = n < 0 ? 0 : n

Le parentesi non sono richieste dal compilatore, ma possono migliorare la leggibilità.

Julia ha un'istruzione match?

Al momento non esiste alcuna struttura match/case nel linguaggio di base.

Per i casi semplici, si consiglia di usare if..elseif..else.

Per il pattern matching sofisticato, simile a quello di Scala, il pacchetto Match.jl è molto usato. Tuttavia, come la maggior parte dei pacchetti di terze parti, Match non è disponibile nel test runner di Exercism.

Modifica tramite GitHub Il collegamento si apre in una nuova finestra o scheda

Impara Condizionali

La pratica è bloccata

Sblocca 5 altri esercizi per esercitarti su Condizionali