Šajā sadaļā mēs uzzināsim, operators prioritāte Java valodā kopā ar piemēriem.
Kas ir operatora prioritāte?
The operatora prioritāte attēlo, kā divas izteiksmes ir saistītas kopā. Izteiksmē tas nosaka operatoru grupēšanu ar operandiem un izlemj, kā izteiksme tiks novērtēta.
Risinot izteiksmi, jāpatur prātā divas lietas, pirmā ir a prioritāte un otrais ir asociativitāte .
java kolekcijas java
Priekšroka
Prioritāte ir prioritāte, lai grupētu dažāda veida operatorus ar to operandiem. Tam ir nozīme tikai tad, ja izteiksmei ir vairāk nekā viens operators ar augstāku vai zemāku prioritāti. Vispirms tiek novērtēti operatori, kuriem ir augstāka prioritāte. Ja mēs vēlamies vispirms novērtēt operatorus ar zemāku prioritāti, mums operandi jāgrupē, izmantojot iekavas, un pēc tam jānovērtē.
Asociativitāte
Mums ir jāievēro asociativitāte, ja izteiksmei ir vairāk nekā divi operatori ar tādu pašu prioritāti. Šādā gadījumā izteiksmi var atrisināt vai nu no kreisās uz labo vai no labās puses uz kreiso, attiecīgi.
pārvērst virkni interger
Java operatora prioritātes tabula
Nākamajā tabulā ir aprakstīta Java izmantoto operatoru prioritāte un asociācija.
Priekšroka | Operators | Tips | Asociativitāte |
---|---|---|---|
piecpadsmit | () [] · | Iekavas Masīva apakšindekss Dalībnieku atlase | No kreisās uz labo |
14 | ++ -- | Unārs pēcpieaugums Unārs pēcsamazinājums | No labās uz kreiso |
13 | ++ -- + - ! ~ (tips) | Unārs priekšpieaugums Unārs iepriekšējais samazinājums Vienots pluss Vienots mīnuss Unārs loģisks noliegums Unārs bitu papildinājums Unāra tipa lējums | No labās uz kreiso |
12 | * / % | Reizināšana Divīzija Modulus | No kreisās uz labo |
vienpadsmit | + - | Papildinājums Atņemšana | No kreisās uz labo |
10 | << >> >>> | Bitu maiņa pa kreisi Bitu pa labi nobīde ar zīmes paplašinājumu Bitu pa labi nobīde ar nulles pagarinājumu | No kreisās uz labo |
9 | < <= > >= instanceof=> | Relāciju mazāk nekā Relācijas ir mazākas par vai vienādas Relāciju lielāks par Relācijas ir lielākas vai vienādas Veidu salīdzinājums (tikai objekti) | No kreisās uz labo |
8 | == != | Relācijas ir vienādas ar Relācijas nav vienādas ar | No kreisās uz labo |
7 | & | Bitu UN | No kreisās uz labo |
6 | ^ | Bitu ekskluzīvs VAI | No kreisās uz labo |
5 | | | Ieskaitot bitus VAI | No kreisās uz labo |
4 | && | Loģiski UN | No kreisās uz labo |
3 | || | Loģiski VAI | No kreisās uz labo |
2 | ? : | Trīskāršs nosacījums | No labās uz kreiso |
1 | = += -= *= /= %= | Piešķiršana Papildinājuma uzdevums Atņemšanas uzdevums Reizināšanas uzdevums Divīzijas uzdevums Moduļa uzdevums | No labās uz kreiso |
Piezīme. Jo lielāks skaitlis, jo augstāka ir prioritāte.
Java operatora prioritātes piemērs
Izpratīsim operatora prioritāti, izmantojot piemēru. Apsveriet šādu izteiksmi un uzminiet atbildi.
1 + 5 * 3
Jūs varētu domāt, ka atbilde būtu 18 bet ne tā. Tā kā reizināšanas (*) operatoram ir augstāka prioritāte nekā saskaitīšanas (+) operatoram. Tādējādi izteiksme vispirms novērtē 5*3 un pēc tam atlikušo izteiksmi, t.i., 1+15. Tāpēc atbilde būs 16 .
java pārvērst virkni par int
Apskatīsim citu piemēru. Apsveriet šādu izteiksmi.
x + y * z / k
Iepriekš minētajā izteiksmē * un / darbības tiek veiktas pirms + prioritātes dēļ. y tiek reizināts ar z, pirms tas tiek dalīts ar k asociativitātes dēļ.