Definizione di diversi tipi di espressione

Completato

Un'espressione è una formula che specifica come generare un valore desiderato e quindi restituisce un valore. Un'espressione usa termini e un operatore che può essere unario o binario.

Con un operatore unario, l'operatore influisce sul termine direttamente seguente. Un operatore binario influisce su entrambi i lati dell'operatore.

È possibile classificare gli operatori in uno dei tipi di operatore seguenti:

  • Unario

  • Stringa

  • Aritmetico

  • Relazionale

  • Logico

Operatori unari

Un operatore unario influisce solo sul termine direttamente seguente l'operatore. Quelli riportati di seguito sono valori di operatore unario:

  • +

  • -

  • NOT

Quando si usa il segno meno (-), questo crea un valore negativo del termine che segue il segno meno. Pertanto, esso influisce solo sul termine che segue l'operatore.

var
    CustomerExists: Boolean;
    MyBoolean: Boolean;
begin
    CustomerExists := true;
    MyBoolean := NOT CustomerExists;
    // Will result in MyBoolean: false
end;

I prossimi operatori sono tutti operatori binari che influiscono sui termini su entrambi i lati dell'operatore.

Operatori di stringa

L'unico operatore di stringa è il segno più (+), che è un operatore binario poiché influisce sui termini su entrambi i lati dell'operatore. L'operatore di stringa concatena due stringhe.

Esempio di uso di un operatore di stringa in AL.

Operatori aritmetici

Gli operatori aritmetici si usano nelle espressioni numeriche. Un'espressione numerica è una formula che restituisce un valore numerico.

Sono disponibili gli operatori aritmetici seguenti:

  • Più (+)

  • Meno (-)

  • Moltiplicazione (*)

  • Divisione (/)

  • Divisione intera (DIV)

  • Modulo (MOD)

var
    MyExpression: Integer;
begin
    MyExpression:= 5 + 2 * 3;
    // Will result in MyExpression: 11
end;

A seconda dei tipi di dati usati con gli operatori aritmetici, è possibile ottenere altri tipi di dati come risultato.

17/8 = 2.125
17/9 = 1.88

L'operatore di divisione, o divisione, è la normale divisione matematica che si usa solitamente. Dividendo due valori interi, si otterrà sempre un valore decimale.

L'operatore di divisione intera (DIV) restituisce il quoziente intero della divisione di interi. È un operatore binario che restituisce un valore intero. È possibile calcolare il risultato di una divisione intera eliminando tutti i decimali del risultato.

17 DIV 8 = 2   The decimal portion 125 is dropped
17 DIV 9 = 1   The decimal portion 88 is dropped

L'operatore modulo (MOD) trova il resto della divisione di un numero per un altro numero. L'operatore modulo viene spesso usato durante la convalida di numeri come quelli dei conti bancari.

5 MOD 2 = 1   5 = (2x2) + 1
17 MOD 9 = 8   17 = (9x1) + 8

Se si confrontano gli operatori, si otterranno i risultati seguenti:

5 / 2 = 2.5
5 DIV 2 = 2
5 MOD 2 = 1

L'ordine in cui vengono applicati gli operatori può avere un effetto che può influire in modo significativo sui risultati dei calcoli.

  • Livello più alto:

    Operatore unario

  • Secondo livello:

    * , / , DIV, MOD

  • Livello più basso:

    + , - (binario)

È possibile modificare gli effetti della precedenza degli operatori usando sottoespressioni (). Le sottoespressioni sono sempre valutate per prime ed è possibile usarle aggiungendo parentesi ().

5 + 3 * 6 – 2 DIV -2 = ?

First Level:
5 + 3 * 6 – 2 DIV -2

Second Level:
5 + 3 * 6 – 2 DIV -2
= 5 + 18 – (-1)

Lowest Level:
+ and –
23 -(-1) = 24

Espressioni relazionali

Sono disponibili le espressioni relazionali seguenti:

  • = (uguale a)

  • < (minore di)

  • > (maggiore di)

  • <= (minore di o uguale a)

  • >= (minore di o uguale a)

  • <> (diverso da)

  • IN (includi in set)

Gli operatori relazionali hanno la precedenza più bassa tra tutti gli operatori. Con le espressioni relazionali è possibile confrontare i valori in termini di minore o maggiore, uguale, minore di o maggiore di. È possibile usare gli operatori relazionali per le situazioni indicate di seguito.

  • Confronti numerici: i confronti numerici sono chiari. Confrontano il valore numerico.

  • Confronti di stringhe: le stringhe vengono confrontate con la data Unicode per determinare il primo valore.

  • Confronti di data e ora: viene usato il calendario per determinare il primo valore.

  • Confronti booleani: il valore false precederà il valore true.

L'inclusione in set (con l'operatore IN) è un elenco di valori, come illustrato nell'esempio seguente:

[2,4,6,8,10]
[1..9,11..19]

L'operatore IN verifica se uno specifico valore è incluso o meno in un set.

5 IN [2,4,6,8,10] is FALSE
5 IN [1..9,11..19] is TRUE
5 IN [2,4..6,8,10] is TRUE
10 IN [1..9,11..19] is FALSE
'M' IN ['A'..'Z'] is TRUE

Espressioni logiche

Sono disponibili le espressioni logiche seguenti:

  • AND

  • OR

  • XOR

  • NOT

Anche gli operatori logici restituiscono valori true e false (restituiscono valori booleani). Gli operatori logici non confrontano valori normali come stringhe, numeri o date. Essi confrontano valori booleani, mentre gli operatori relazionali confrontano i valori in base alle differenze nei propri valori.

L'esempio seguente illustra un confronto tra i diversi operatori logici.

Tabelle che mostrano le differenze tra gli operatori logici.

  • Con l'operatore NOT tutti i valori logici sono rovesciati. Un valore NOT True restituisce un risultato False e un valore NOT False restituisce un risultato True.

  • Con l'operatore OR uno dei valori deve essere True per restituire True. In caso contrario, il valore è False.

  • Con l'operatore AND entrambi i valori devono essere True per restituire True. In caso contrario, il valore è False.

  • Con l'operatore XOR (OR esclusivo), un solo valore può essere True per restituire True. In caso contrario, il valore è False.

L'esempio seguente riunisce tutti gli operatori.

Esempio che mostra gli effetti della precedenza dell'operatore.

Espressioni booleane

Durante la programmazione o l'uso del linguaggio delle applicazioni si troveranno anche espressioni booleane. Un'espressione booleana è un'espressione che restituisce un valore booleano per il quale è possibile usare una variabile o una costante booleana. Le espressioni relazionali e logiche restituiscono in genere valori booleani.