In diesem Abschnitt lernen wir das Operator Vorrang in Java zusammen mit Beispielen.
Was ist Operatorpriorität?
Der Vorrang des Operators stellt dar, wie zwei Ausdrücke miteinander verbunden sind. In einem Ausdruck bestimmt es die Gruppierung von Operatoren mit Operanden und entscheidet, wie ein Ausdruck ausgewertet wird.
Beim Lösen eines Ausdrucks müssen zwei Dinge beachtet werden: Das erste ist a Vorrang und das zweite ist Assoziativität .
Vorrang
Vorrang ist die Priorität für die Gruppierung verschiedener Operatortypen mit ihren Operanden. Dies ist nur dann sinnvoll, wenn ein Ausdruck mehr als einen Operator mit höherer oder niedrigerer Priorität hat. Die Operatoren mit höherer Priorität werden zuerst ausgewertet. Wenn wir zuerst Operatoren mit niedrigerer Priorität auswerten möchten, müssen wir Operanden mithilfe von Klammern gruppieren und dann auswerten.
Assoziativität
Wir müssen der Assoziativität folgen, wenn ein Ausdruck mehr als zwei Operatoren mit derselben Priorität hat. In einem solchen Fall kann ein Ausdruck entweder gelöst werden links nach rechts oder rechts nach links, entsprechend.
Prioritätstabelle für Java-Operatoren
Die folgende Tabelle beschreibt die Rangfolge und Assoziativität der in Java verwendeten Operatoren.
Ubuntu welcher Befehl
Vorrang | Operator | Typ | Assoziativität |
---|---|---|---|
fünfzehn | () [] · | Klammern Array-Index Auswahl der Mitglieder | Links nach rechts |
14 | ++ -- | Unäres Post-Inkrement Unäres Postdekrement | Rechts nach links |
13 | ++ -- + - ! ~ (Typ) | Unäres Vorinkrement Unäres Vordekrement Unäres Plus Unäres Minus Unäre logische Negation Unäres bitweises Komplement Unäre Typumwandlung | Rechts nach links |
12 | * / % | Multiplikation Aufteilung Modul | Links nach rechts |
elf | + - | Zusatz Subtraktion | Links nach rechts |
10 | << >> >>> | Bitweise Linksverschiebung Bitweise Rechtsverschiebung mit Vorzeichenerweiterung Bitweise Rechtsverschiebung ohne Erweiterung | Links nach rechts |
9 | < <= > >= Instanz von=> | Relational weniger als Relational kleiner oder gleich Relational größer als Relational größer oder gleich Typvergleich (nur Objekte) | Links nach rechts |
8 | == != | Relational ist gleich Relational ist nicht gleich | Links nach rechts |
7 | & | Bitweises UND | Links nach rechts |
6 | ^ | Bitweises Exklusiv-ODER | Links nach rechts |
5 | | | Bitweises inklusives ODER | Links nach rechts |
4 | && | Logisches UND | Links nach rechts |
3 | || | Logisches ODER | Links nach rechts |
2 | ? : | Ternäre Bedingung | Rechts nach links |
1 | = += -= *= /= %= | Abtretung Zusatzaufgabe Subtraktionsaufgabe Multiplikationsaufgabe Abteilungszuordnung Modulzuordnung | Rechts nach links |
Hinweis: Je größer die Zahl, desto höher die Priorität.
Beispiel für die Rangfolge von Java-Operatoren
Lassen Sie uns die Operatorpriorität anhand eines Beispiels verstehen. Betrachten Sie den folgenden Ausdruck und erraten Sie die Antwort.
1 + 5 * 3
Sie denken vielleicht, dass die Antwort lauten würde 18 aber nicht so. Weil der Multiplikationsoperator (*) eine höhere Priorität hat als der Additionsoperator (+). Daher wertet der Ausdruck zuerst 5*3 aus und wertet dann den verbleibenden Ausdruck aus, d. h. 1+15. Daher wird die Antwort sein 16 .
Sehen wir uns ein weiteres Beispiel an. Betrachten Sie den folgenden Ausdruck.
x + y * z / k
Im obigen Ausdruck werden *- und /-Operationen aus Prioritätsgründen vor + ausgeführt. Aufgrund der Assoziativität wird y mit z multipliziert, bevor es durch k dividiert wird.