Tässä osiossa opimme operaattori etusija Javassa esimerkkien kanssa.
ipconfig ubuntulle
Mikä on operaattorin etusija?
The operaattorin etusijalla edustaa kuinka kaksi lauseketta on sidottu yhteen. Lausekkeessa se määrittää operaattoreiden ryhmittelyn operandien kanssa ja päättää kuinka lauseke arvioi.
Lauseketta ratkaistaessa on pidettävä mielessä kaksi asiaa, joista ensimmäinen on a etusijalla ja toinen on assosiatiivisuus .
Ensisijaisuus
Ensisijaisuus on prioriteetti ryhmiteltäessä erityyppisiä operaattoreita niiden operandien kanssa. Sillä on merkitystä vain, jos lausekkeessa on useampi kuin yksi operaattori, jolla on suurempi tai pienempi prioriteetti. Ensin arvioidaan operaattorit, joilla on korkeampi etuoikeus. Jos haluamme arvioida ensin alhaisemman prioriteetin operaattorit, meidän on ryhmiteltävä operandit sulkujen avulla ja arvioitava sitten.
Assosiatiivisuus
Meidän on noudatettava assosiatiivisuutta, jos lausekkeella on enemmän kuin kaksi saman ensisijaisuuden omaavaa operaattoria. Tässä tapauksessa lauseke voidaan ratkaista joko vasemmalta oikealle tai oikealta vasemmalle, asianmukaisesti.
abstrakti luokka vs käyttöliittymä
Java-operaattorien tärkeysjärjestystaulukko
Seuraava taulukko kuvaa Javassa käytettävien operaattoreiden ensisijaisuutta ja assosiatiivisuutta.
Ensisijaisuus | Operaattori | Tyyppi | Assosiatiivisuus |
---|---|---|---|
viisitoista | () [] · | Sulut Array alaindeksi Jäsenvalinta | Vasemmalta oikealle |
14 | ++ -- | Unaarinen jälkilisäys Unaarinen dekrementti | Oikealta vasemmalle |
13 | ++ -- + - ! ~ (tyyppi) | Unaarinen esilisäys Unaarinen esivähennys Yksinäinen plussa Yksinäinen miinus Yksinäinen looginen negaatio Unaarinen bittikomplementti Unary type cast | Oikealta vasemmalle |
12 | * / % | Kertominen Division Modulus | Vasemmalta oikealle |
yksitoista | + - | Lisäys Vähennyslasku | Vasemmalta oikealle |
10 | << >> >>> | Bittisuuntainen siirto vasemmalle Bittisuuntainen siirto oikealle kylttilaajennuksella Bitittainen siirto oikealle nollalaajennuksella | Vasemmalta oikealle |
9 | < <= > >= esiintymä=> | Suhteellinen vähemmän kuin Relaatio pienempi tai yhtä suuri Suhteellinen suurempi kuin Relaatio on suurempi tai yhtä suuri Tyyppivertailu (vain objektit) | Vasemmalta oikealle |
8 | == != | Relaatio on yhtä suuri kuin Relaatio ei ole sama kuin | Vasemmalta oikealle |
7 | & | Bitittain JA | Vasemmalta oikealle |
6 | ^ | Bittikohtaisesti yksinomainen TAI | Vasemmalta oikealle |
5 | | | Bittikohtainen TAI | Vasemmalta oikealle |
4 | && | Looginen JA | Vasemmalta oikealle |
3 | || | Looginen TAI | Vasemmalta oikealle |
2 | ? : | Kolminkertainen ehdollinen | Oikealta vasemmalle |
1 | = += -= *= /= %= | Tehtävä Lisäystehtävä Vähennystehtävä Kertolaskutehtävä Jaostotehtävä Moduulitehtävä | Oikealta vasemmalle |
Huomautus: Mitä suurempi numero, sitä suurempi on etusija.
Esimerkki Java-operaattorin ensisijaisuudesta
Ymmärretään operaattorin ensisijaisuus esimerkin avulla. Harkitse seuraavaa lauseketta ja arvaa vastaus.
kevät s
1 + 5 * 3
Saatat ajatella, että vastaus olisi 18 mutta ei niin. Koska kerto-operaattorilla (*) on korkeampi prioriteetti kuin yhteenlaskuoperaattorilla (+). Näin ollen lauseke arvioi ensin 5*3 ja sen jälkeen jäljellä olevan lausekkeen eli 1+15. Siksi vastaus tulee olemaan 16 .
Katsotaanpa toinen esimerkki. Harkitse seuraavaa lauseketta.
x + y * z / k
Yllä olevassa lausekkeessa * ja / -operaatiot suoritetaan ennen +:a ensisijaisuuden vuoksi. y kerrotaan z:llä ennen kuin se jaetaan k:lla assosiatiivisuuden vuoksi.