class Tester {
public static void main(String[] arg) {
byte b=10;
b +=(b<127)?b>-128? b+=10 :0 :5;
System.out.println(b);
}
}
ich weiß, dass die Bedingungen true
und übernahmen die Kontrolle b+=10
so jetzt ausgewertet werden logisch ist b+=b+=10;
den Wert von b und 10 Zugabe, die 20 auswertet, Zuweisen zu b. Jetzt kann ich es nicht weiter bewerten.Ich erwarte die Ausgabe 40 zu sein, aber ich habe 30
Bitte formatieren Sie Ihren Code klarer, siehe oben, wie ich es gemacht habe –
Was ist los, dass diese Aussage? Sie haben 2 Zuweisungen in der gleichen Zeile ... –
Mögliches Duplikat von [Warum ist "a^= b^= a^= b;" anders als "a^= b; b^= a; a^= b;"] (http://stackoverflow.com/questions/22044163/why-is-abab-different-from-abbaab) –