Betrachtet man diesen Ausdruck:java - Welche größere Priorität hat, + oder -
x1 = ++x - x++ + --x
, wenn der Wert von x eingegeben wird 5
Was die Ausgabe solcher Ausdruck in Java sein wird, und warum?
Betrachtet man diesen Ausdruck:java - Welche größere Priorität hat, + oder -
x1 = ++x - x++ + --x
, wenn der Wert von x eingegeben wird 5
Was die Ausgabe solcher Ausdruck in Java sein wird, und warum?
Es gibt keinen größeren Vorrang in + oder -.
Ohne Klammern sind sie nur in der Größenordnung von apperance ausgeführt, lässt Ihr Beispiel betrachten:
public class Test {
public static void main(String[] args) {
int x = 5;
int x1 = ++x - x++ + --x;
System.out.println(x1);
}
}
druckt Es gibt vier Operationen von pre/post Inkrementierung/Dekrementierung:
++x
wird vor der Auswertung erhöht (bevor der Wert im Ausdruck verwendet wird)--x
dekrementiert vor der Auswertungx++
nach Auswertung inkrementiert wird (nach seinem Wert in dem Ausdruck verwendet)x--
wird decreemnt nach AuswertungBrechen der Ausdruck Teile:
1) "++x
" Das x wird um 1 inkrementiert, bevor es seinen Wert im Ausdruck verwendet, also ist es jetzt:
2) "- x++
" die x wird von einem nach der Verwendung von seinem Wert bei der Expression erhöht werden, so ist es:
6 - 6 , but now x=7
3) "+ --x
" die x um eins dekrementiert werden, vor ihrer Wert wird verwendet werden, so dass es übersetzt schließlich:
x1 = 6 - 6 + 6;
Dies als ausgeführt wird:
x1 = 0 + 6;
x1 = 6;
Offensichtlich gibt es keinen größeren Vorrang in +
oder -
, wie es nur subtrahiert und in der Reihenfolge des Auftretens hinzugefügt wird.
'x1' wäre' 6' – shash678
Nutzlose Frage .... aber die Antwort ist 6. –
'+' und '-' haben die gleiche Priorität, aber die' ++ 'Präfix/Postfix-Operatoren haben höhere Priorität als '+' und '-'. Siehe [die Tabelle hier] (https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html). Sie müssen auch bedenken, dass Ausdrücke von links nach rechts ausgewertet werden. – Jesper