In questa sezione impareremo il operatore precedenza in Java insieme ad esempi.
Cos'è la precedenza degli operatori?
IL precedenza dell'operatore rappresenta il modo in cui due espressioni sono legate insieme. In un'espressione, determina il raggruppamento degli operatori con gli operandi e decide come verrà valutata un'espressione.
Mentre si risolve un'espressione è necessario tenere presente due cose, la prima è a precedenza e il secondo lo è associatività .
Precedenza
La precedenza è la priorità per raggruppare diversi tipi di operatori con i relativi operandi. Ha significato solo se un'espressione ha più di un operatore con precedenza più alta o più bassa. Gli operatori con la precedenza più alta vengono valutati per primi. Se vogliamo valutare prima gli operatori con precedenza inferiore, dobbiamo raggruppare gli operandi utilizzando parentesi e poi valutare.
Associatività
Dobbiamo seguire l'associatività se un'espressione ha più di due operatori con la stessa precedenza. In tal caso, è possibile risolvere anche un'espressione da sinistra a destra O da destra a sinistra, di conseguenza.
Tabella di precedenza degli operatori Java
La tabella seguente descrive la precedenza e l'associatività degli operatori utilizzati in Java.
Precedenza | Operatore | Tipo | Associatività |
---|---|---|---|
quindici | () [] · | Parentesi Pedice dell'array Selezione dei membri | Da sinistra a destra |
14 | ++ -- | Post-incremento unario Post-decremento unario | Da destra a sinistra |
13 | ++ -- + - ! ~ (tipo) | Preincremento unario Predecremento unario Più unario Meno unario Negazione logica unaria Complemento bit a bit unario Cast di tipo unario | Da destra a sinistra |
12 | * / % | Moltiplicazione Divisione Modulo | Da sinistra a destra |
undici | + - | Aggiunta Sottrazione | Da sinistra a destra |
10 | << >> >>> | Spostamento a sinistra bit per bit Spostamento a destra bit per bit con estensione del segno Shift a destra bit per bit con estensione zero | Da sinistra a destra |
9 | < <= > >= istanza di=> | Relazionale meno di Relazionale minore o uguale Relazionale maggiore di Relazionale maggiore o uguale Confronto di tipi (solo oggetti) | Da sinistra a destra |
8 | == != | Relazionale è uguale a Relazionale non è uguale a | Da sinistra a destra |
7 | & | AND bit per bit | Da sinistra a destra |
6 | ^ | OR esclusivo bit per bit | Da sinistra a destra |
5 | | | OR inclusivo bit per bit | Da sinistra a destra |
4 | && | AND logico | Da sinistra a destra |
3 | || | OR logico | Da sinistra a destra |
2 | ? : | Condizionale ternario | Da destra a sinistra |
1 | = += -= *= /= %= | Incarico Compito aggiuntivo Assegnazione della sottrazione Compito di moltiplicazione Assegnazione della divisione Assegnazione del modulo | Da destra a sinistra |
Nota: maggiore è il numero, maggiore è la precedenza.
Esempio di precedenza degli operatori Java
Capiamo la precedenza degli operatori attraverso un esempio. Considera la seguente espressione e indovina la risposta.
1 + 5 * 3
Potresti pensare che la risposta sarebbe 18 ma non è così. Perché l'operatore di moltiplicazione (*) ha una precedenza maggiore rispetto all'operatore di addizione (+). Pertanto, l'espressione valuta prima 5*3 e poi valuta l'espressione rimanente, ovvero 1+15. Pertanto, la risposta sarà 16 .
Vediamo un altro esempio. Considera la seguente espressione.
x + y * z / k
Nell'espressione precedente, le operazioni * e / vengono eseguite prima di + a causa della precedenza. y viene moltiplicato per z prima di essere diviso per k a causa dell'associatività.