Le espressioni eseguono azioni specifiche, in base a un operatore, con uno o due operandi. Un operando può essere una costante, una variabile o il risultato di una funzione. Gli operatori sono aritmetici, logici e relazionali. Come avviene in C, alcuni operatori variano nella funzionalità a seconda del tipo di dati degli operandi, specificato nell'espressione.
L'operatore unario negativo inverte il segno di un'espressione da positivo a negativo o viceversa. L'effetto che si ottiene è la moltiplicazione del numero per -1. Esempio:
a = -10;
Gli operatori prefisso incrementano o decrementano la variabile prima di eliminare il riferimento all'oggetto, mentre gli operatori suffisso incrementano o decrementano la variabile una volta creato il relativo riferimento. Esempio:
A=1; B = a++; // b è uguale a 1, a è uguale a 2; A = 1; B = ++a; // b è uguale a 2, a è uguale a 2; A= 1; B = a--; // b è uguale a 1, a è uguale a 0;
| Simbolo | Operazione | Esempio | Descrizione |
|---|---|---|---|
| + | Addizione | a + b | Sommare i due operandi |
| - | Sottrazione | a - b | Sottrarre il secondo operando dal primo operando |
| * | Moltiplicazione | a * b | Moltiplicare i due operandi |
| / | Divisione | a / b | Dividere il primo operando per il secondo operando |
| ** | Elevamento a potenza | a ** b | Eleva il primo operando alla potenza rappresentata dal secondo |
| % | Modulo |
a % b |
Dividere il primo operando per il secondo operando e ottenere la parte restante |
Se un'espressione contiene due o più operatori con la stessa precedenza, l'operatore a sinistra viene valutato per primo. Ad esempio, 10 / 2 * 5 verrà valutato come (10 / 2) e il risultato verrà moltiplicato per 5.
Per fare in modo che un'operazione inferiore di precedenza venga elaborata per prima, è necessario racchiuderla tra parentesi. Ad esempio: 30 / 2 + 8. Tale operazione viene normalmente valutata come 30 diviso 2 e al risultato viene quindi aggiunto 8. Se si desidera dividere per la somma di 2 + 8, è necessario scrivere 30 / (2 + 8).
Le parentesi possono essere nidificate all'interno delle espressioni. Le espressioni tra parentesi più interne vengono valutate per prime.
| Simbolo | Operazione | Esempio | Descrizione |
|---|---|---|---|
| AND && | E |
Expr1 $$ expr2 |
True se sia expr1 che expr2 sono True. |
| OR || | OR |
Expr1 OR expr2 |
True se expr1 o expr2 è True. |
| Simbolo | Operazione | Esempio | Descrizione |
|---|---|---|---|
| < | Minore di | a < b | True se a è minore di b. |
| > | Maggiore di | a GT b | True se a è maggiore di b. |
| == | Uguale a | a == b | True se a è uguale a b. |
| != | Non uguale a | a NE b | True se a non è uguale a b. |
| <= | Minore di o uguale a | a <= b | True se a è minore di o uguale a b. |
| >= | Maggiore di o uguale a | a GE b | True se a è maggiore di o uguale a b. |
I confronti devono essere eseguiti tra tipi di dati simili—stringa con stringa, numeri con numeri. Se i tipi di dati sono differenti, verrà generato un errore di runtime.
Se un qualsiasi carattere in una stringa non equivale a quello corrispondente nell'altra stringa, il confronto si arresta e le stringhe non vengono considerate uguali. Le stringhe sono sensibili al maiuscolo/minuscolo. Esempi:
Str1 = "abcdefg"; Str2 = "abcdefg"; Str3 = "abcdef"; Str4 = "ABCDEFG"; If (str1 == str2)... dà come risultato condizioni di uguaglianza/true If (str1 == str3).... Dà come risultato una condizione di non uguaglianza poiché str3 è più corto di str1 If (str1 == str4) ... Dà come risultato una condizione di non uguaglianza poiché le stringhe presentano una differente combinazione di maiuscole/minuscole;
Str1 = "abc"; Str2 = "def"; Str3 = str1 + str2; dà come risultato "abcdef"