Il significato del termine espressione in programmazione è simile a quello della matematica. Una espressione è un particolare tipo di assegnazione. In parole semplici si tratta di una formula in cui il risultato di un certo calcolo viene assegnato ad una variabile. Per esempio:
Già dall'espressione precedente è possibile osservare che la notazione usata in JS è leggermente diversa da quella usata in algebra. Un'espressione in generale contiene variabili, costanti numeriche e operatori aritmetici.
Gli operatori aritmetici in JS sono i seguenti:
+ | addizione |
- | sottrazione |
* | moltiplicazione |
/ | divisione |
% | modulo |
Fra gli operatori valgono le regole di precedenza dell'algebra e precisamente: moltiplicazione, divisione e modulo hanno la precedenza su addizione e sottrazione.
Per modificare l'ordine di precedenza si usano le parentesi tonde, come nell'esempio dell'area del trapezio. Non si possono usare parentesi quadre o graffe. Se è necessario si possono usare più parentesi tonde annidate, come in questo esempio:
Oltre agli operatori precedenti (detti operatori binari in quanto si applicano sempre a una coppia di elementi) il JS prevede anche i seguenti operatori unari (cioè che si applicano a un elemento solo):
- | negazione (cambia il segno) |
++ | incremento |
-- | decremento |
La negazione consente di ottenere un valore negativo di un numero. Ad esempio, -x è il valore negativo del valore numerico rappresentato dalla variabile x.
Gli operatori di incremento e decremento sono applicabili soltanto a variabili e consentono di ottenere un valore rispettivamente aumentato o diminuito di uno. È molto importante la posizione dell’operatore. Infatti, se l’operatore si trova a sinistra dell’operando, l’operazione di incremento o decremento viene eseguita prima della valutazione dell’espressione (preincrement), mentre se si trova a destra l’operazione viene eseguita dopo (postincrement). Chiariamo il concetto con un esempio:
In questo caso la variabile x viene prima incrementata di uno e quindi il suo valore (4) viene assegnato a y. In questo caso alla fine sia x che y valgono 4.
Si consideri invece questo esempio:
In questo caso l'assegnazione viene eseguita prima dell'incremento e dunque alla fine x vale 4 e y vale 3.
Un caso che si incontra molto frequentemente programmando è l'assegnazione di una variabile a se stessa, dopo averne modificato il valore. Abbiamo già affrontato l'argomento parlando di variabili di accumulo nella sezione dedicata agli algoritmi. Rivediamo qui rapidamente qualche esempio di questo tipo:
Il JS (come tutti i linguaggi derivati dal C) consente di abbreviare la scrittura di queste assegnazioni nel seguente modo:
Si tratta come si è detto di una notazione abbreviata: il suo uso, sebbene piuttosto frequente, non è in nessun caso obbligatorio né rende più veloce l'esecuzione del programma.
L'operatore modulo (%) non è comunemente usato in algebra e perciò agli inizi presenta qualche difficoltà in più. Il modulo calcola il resto della divisione intera fra due numeri interi. Si consideri il seguente esempio:
Al termine dell'esecuzione la variabile resto contiene il valore 2, in quanto 44 diviso 6 dà come risultato 7 col resto di 2. Si osservi che l'operatore % fornisce solo il resto della divisione e non il quoziente della divisione stessa (se si volesse anche il quoziente della divisione, bisognerebbe usare il /).
L'operatore % è molto più utile di quanto forse potrebbe sembrare. Per esempio viene usato per determinare se un numero è divisibile oppure no per un altro. Infatti se due numeri sono divisibili fra loro il resto della loro divisione è zero.
In JS l'operatore modulo può essere usato anche con numeri decimali (floating point), sebbene non sia particolarmente utile in questo caso.
Sito realizzato in base al template offerto da
http://www.graphixmania.it