logo

Massima precedenza in Java

Quando si parla di precedenza in Java il primo pensiero viene all'operatore. Esistono alcune regole definite in Java per specificare l'ordine in cui vengono valutati gli operatori in un'espressione. Precedenza degli operatori è un concetto per determinare il gruppo di termini in un'espressione. La precedenza degli operatori è responsabile della valutazione delle espressioni. In Giava , parentesi() E Indice dell'array[] hanno la massima precedenza in Java. Ad esempio, addizione e sottrazione hanno una precedenza maggiore rispetto agli operatori spostamento a sinistra e spostamento a destra.

Massima precedenza in Java

Di seguito è riportata una tabella definita in cui l'operatore con la precedenza più bassa viene visualizzato nella parte superiore.

Precedenza Operatore Tipo Associatività
1) =
+=
-=
*=
/=
%=
Incarico
Compito aggiuntivo
Assegnazione della sottrazione
Compito di moltiplicazione
Assegnazione della divisione
Assegnazione del modulo
Da destra a sinistra
2) ? : Condizionale ternario Da destra a sinistra
3) || OR logico Da sinistra a destra
4) && AND logico Da sinistra a destra
5) | OR inclusivo bit per bit Da sinistra a destra
6) ^ OR esclusivo bit per bit Da sinistra a destra
7) & AND bit per bit Da sinistra a destra
8) !=
==
Relazionale non è uguale a
Relazionale è uguale a
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
10) >>
<<
>>>
Spostamento a destra bit per bit con estensione del segno
Spostamento a sinistra bit per bit
Shift a destra bit per bit con estensione zero
Da sinistra a destra
undici) -
+
Sottrazione
Aggiunta
Da sinistra a destra
12) *
/
%
Moltiplicazione
Divisione
Modulo
Da sinistra a destra
13) -
+
~
!
( tipo)
Meno unario
Più unario
Complemento bit a bit unario
Negazione logica unaria
Typecast unario
Da destra a sinistra
14) ++
--
Post-incremento unario
Post-decremento unario
Da destra a sinistra
quindici) ·
()
[]
Operatore punto
Parentesi
Pedice dell'array
Da sinistra a destra

Ordine di precedenza

Quando due operatori condividono un unico operando, l'operatore con la massima precedenza inizia per primo. Ad esempio, x + y * z viene trattato come x + (y * z), mentre x * y + z viene trattato come (x * y) + z perché l'operatore * ha la massima precedenza rispetto all'operatore +.

java mescolando a int

Associatività

L'associativo è un concetto relativo agli operatori applicati quando in un'espressione compaiono due operatori con la stessa precedenza. Il concetto di associatività è molto utile per partire da quella situazione. Supponiamo di avere un'espressione a + b - c Gli operatori (+ e - hanno la stessa priorità) , e questa espressione verrà trattata come (a + (b - c)) perché questi operatori sono associativi da destra a sinistra. D'altra parte, a+++--b+c++ verrà trattato come ((a++)+((--b)+(c++))) perché gli operatori unari di post-incremento e decremento sono associativi da destra a sinistra.

Di seguito viene definito un esempio per comprendere come viene valutata un'espressione utilizzando l'ordine di precedenza e l'associatività.

Espressione: x = 4 / 2 + 8 * 4 - ( 5+ 2 ) % 3

Soluzione:

1) Nell'espressione precedente, l'operatore con la precedenza più alta è () . Quindi, la parentesi va per prima e calcola per prima.

x = 4/2 + 8 * 4 - 7% 3

2) Ora, /, * E % gli operatori hanno la stessa precedenza e il massimo rispetto a + E - Qui usiamo il concetto di associatività per risolverli. Gli associativi di questi operatori vanno da sinistra a destra. COSÌ, / l'operatore va prima e poi * E % contemporaneamente.

elenco doppiamente concatenato

x = 2 + 8 * 4 - 7 % 3

x = 2 + 32 - 7% 3

x = 2 + 32 - 1

3) Ora, + E - anche gli operatori hanno entrambi la stessa precedenza e l'associatività di questi operatori è più a destra. COSÌ, + l'operatore andrà per primo e poi - andrò.

x = 34 - 1

x = 33

codice fibonacci java

Precedenza più alta.java

 //import classes import java.util.*; //creating HighestPrecedence class to evaluate the expression public class HighestPrecedence { //main() method starts public static void main(String[] args) { //initialize variables with default values int x = 2; int y = 5; int z = 12; //calculating exp1, exp2, and exp3 int exp1 = x +(z/x+(z%y)*(z-x)^2); int exp2 = z/x+y*x-(y+x)%z; int exp3 = 4/2+8*4-(5+2)%3; //printing the result System.out.println(exp1); System.out.println(exp2); System.out.println(exp3); } } 

Produzione

Massima precedenza in Java