Salta al contenuto
Guida di Varlig
Pagina iniziale di Varlig

Operatori, confronti e condizioni

Questa pagina descrive i simboli e le parole che combinano i valori: operazioni aritmetiche e loro ordine di esecuzione, confronti che restituiscono true o false, operatori logici e bit a bit. Consultala quando una riga restituisce un numero diverso da quello previsto o vuoi che la nota verifichi una condizione, per esempio se stai rispettando il budget.

Aritmetica

Operatore Forme di scrittura Esempio Risultato
Addizione +, plus £12.50 + £4.30 £16.80
Sottrazione -, −, minus £20 - £4.50 £15.50
Moltiplicazione *, ×, times, multiplied by, giustapposizione 3 × £4.50, 2(3 + 4) £13.50, 14
Divisione /, ÷, divided by £60 / 4 £15.00
Potenza ^, **, to the power of, raised to, exponent 2 ** 3, 2 raised to 10 8, 1,024
Resto mod, % (tra due numeri) 50 mod 6, 50 % 6 2
Radice quadrata √, sqrt(...), square root of √144 12
Al quadrato / al cubo ², ³ 3³ 27
Fattoriale !, factorial(...) 5!, factorial(5) 120

Le operazioni aritmetiche funzionano con numeri senza unità, denaro e quantità con unità; il risultato conserva la valuta o l’unità:

calc
£12.50 + £4.30 dà £16.80
3 * £4.50 dà £13.50
£1,000 * 1.05^3 dà £1,157.63
6 times 7 dà 42
100 minus 37.5 dà 62.5

Giustapposizione significa tralasciare il *, come in 2(3 + 4) o 2π. Moltiplicazione implicita spiega quando funziona e quando no.

Ordine delle operazioni

I calcoli seguono il solito ordine della matematica scolastica:

  1. Parentesi.
  2. Fattoriali, come 5!.
  3. Potenze, calcolate da destra a sinistra: 2^3^2 equivale a 2^9, cioè 512.
  4. Un segno meno iniziale, applicato dopo la potenza: -2^2 è -4, mentre (-2)^2 è 4.
  5. Moltiplicazione, divisione e mod, da sinistra a destra.
  6. Addizione e sottrazione, da sinistra a destra.

Omettere * non cambia questo ordine: 2x^2 eleva x al quadrato prima di raddoppiarlo, come nelle formule dei libri di matematica.

La moltiplicazione viene quindi eseguita prima dell’addizione che la affianca: è facile dimenticarsene quando si sommano le voci di un conto.

calc
£85 - £12.50 * 2 dà £60.00
(£85 - £12.50) * 2 dà £145.00
£120 / 4 / 2 dà £15.00

In caso di dubbio, aggiungi le parentesi. Non fanno mai male e rendono la nota più facile da leggere in seguito.

Il simbolo di radice quadrata si applica al valore immediatamente successivo: √9 + 16 vale quindi 19. Per calcolare la radice di una somma, racchiudi l’intera espressione tra parentesi:

calc
√(9 + 16) dà 5

Resti

mod restituisce il resto della divisione. È utile per suddividere elementi in gruppi:

calc
eggs = 50
eggs mod 6 dà 2
floor(eggs / 6) dà 8

Cinquanta uova riempiono otto scatole da sei e ne avanzano due.

Anche % tra due numeri restituisce il resto, senza richiedere uno spazio prima del secondo numero: 50 % 6 e 50% 6 danno entrambi 2. Se non è seguito da nulla, % indica invece una percentuale (50%), come spiegato in Percentuali.

Fattoriali

Scrivi ! subito dopo un numero, un nome o una parentesi di chiusura per calcolarne il fattoriale:

calc
5! dà 120
runners = 4
runners! dà 24
3! + 2 dà 8
5!=4 dà true

Il fattoriale viene calcolato prima della potenza adiacente: 2^3! equivale quindi a 2⁶, cioè 64. ! seguito da = continua a significare «diverso da», come mostra l’ultima riga. factorial(5) dà lo stesso risultato di 5!.

Confronto

==, !=, <, <=, > e >= confrontano due valori e restituiscono true o false. Funzionano con numeri senza unità, importi nella stessa valuta e quantità della stessa grandezza, anche espresse in unità diverse:

calc
budget = £400
spent = £365
spent <= budget dà true
spent == budget dà false
spent != budget dà true
5 km == 5,000 m dà true
90 min >= 1.5 hours dà true
2 kg < 2,500 g dà true

Le unità vengono convertite prima del confronto: 1 mile > 1.5 km restituisce quindi true. Confrontare grandezze diverse, come chilogrammi e metri, genera l’errore incompatible units.

Limiti dei confronti

  • Confronti concatenati. La forma 5 < x < 10 non è supportata. Combina invece due confronti: 5 < x && x < 10.
  • Simboli Unicode. ≠, ≤ e ≥ non vengono riconosciuti. Usa !=, <= e >=.
  • Date. Non puoi confrontare due date con < o >. Sottraile e confronta la differenza con una durata:
calc
deadline = 30 September 2026
booked = 14 September 2026
deadline - booked dà 2 weeks 2 days
deadline - booked >= 7 days dà true

Operatori logici

Unisci i confronti con && (entrambi devono essere veri) o || (almeno uno deve essere vero). Le parole and e or funzionano allo stesso modo tra due confronti.

calc
distance = 5 km
run time = 27 min
distance >= 5 km && run time < 30 min dà true
distance >= 10 km || run time < 25 min dà false
distance >= 10 km or run time < 30 min dà true

true e false possono essere scritti direttamente e combinati con && e || :

calc
true || false dà true
true && false dà false

Alcune forme che potresti aspettarti non sono supportate:

  • and e or funzionano solo tra confronti. true and false non funziona: scrivi true && false.
  • Non esiste un operatore di negazione: not true e !true non funzionano. Confronta invece il risultato con false, come in (spent > budget) == false.
  • or non fornisce un valore alternativo in caso di errore: 1/0 or 5 non restituisce 5.

Utilizzo dei confronti nei condizionali

Un confronto è particolarmente utile dentro if … then … else …, che sceglie un valore in base all’esito:

calc
basket = £34.50
if basket >= £40 then £0 else £3.99 dà £3.99

Condizioni descrive la sintassi completa, compresi else if, if e unless dopo l’espressione e le assegnazioni all’interno di un ramo.

Operatori bit a bit

I numeri interi supportano gli operatori bit a bit & (e), | (o), xor, << (sposta a sinistra) e >> (sposta a destra). Funzionano anche le parole maiuscole AND, OR e XOR. Questi sono per lo più utili per attività di programmazione come i valori di colore e le autorizzazioni dei file.

calc
12 & 10 dà 8
12 | 10 dà 14
12 xor 10 dà 6
12 AND 10 dà 8
1 << 10 dà 1,024
1024 >> 3 dà 128

Il risultato viene visualizzato come un numero decimale. Aggiungi to binary, in hex o to octal per vederlo nella base che stai usando:

calc
0o644 | 0o111 to octal dà 0o755
colour = 0xFF8800
(colour >> 8) & 0xFF dà 136

Gli scorrimenti di bit vengono eseguiti prima di &, | e xor, ma le parentesi rendono molto più leggibile una riga come quella dell’esempio sui colori.

Un esempio completo

Un controllo mensile del budget che utilizza aritmetica, confronti e logica insieme:

calc
# September budget
take home = £2,400
rent = £1,050
bills = £230
groceries = 4 * £65 dà £260.00
left over = take home - rent - bills - groceries dà £860.00
rent / take home as % dà 43.75%
left over > £500 dà true
left over > £500 && rent <= take home * 45% dà true

In groceries, la moltiplicazione precede le addizioni; in left over, le sottrazioni procedono da sinistra a destra. Le ultime due righe verificano il budget: il risultato resta true finché rimangono più di 500 £ e l’affitto non supera il 45% dello stipendio netto. Diventa false appena una delle due condizioni non è più rispettata.