Auswertung eines Ausdrucks

Status
Nicht offen für weitere Antworten.

BennyM85

Mitglied
Hallo, ich habe eine Frage (gegeben):

int a=2;
int b=10;

Wie wird dieser Ausdruck ausgewertet? (in Schritten)

a*3 & 5+b++

Vielen Dank,
Benny
 
naja ich hab gedacht
zuerst wird b++
=> also b=11
dann a*3 => 6
und dann 5+11=16
sodass dann da steht: 6&16

aber das geht wohl so nicht 🙁 (hatten grad ein Tutorium und dort wusste aber der Tutor auch nicht warum das so eben nciht geht...) sondern da muss 5 am Ende rauskommen....
 
Code:
public class Test
{
    public static void main(String[] args)
        throws Exception
    {
        int b = 2;
        int k = 5 + b++;
        System.out.println(k + " " + b);
    }
}
 
naja ich hab gedacht
zuerst wird b++
=> also b=11
dann a*3 => 6
und dann 5+11=16
sodass dann da steht: 6&16

aber das geht wohl so nicht icon_sad.gif (hatten grad ein Tutorium und dort wusste aber der Tutor auch nicht warum das so eben nciht geht...) sondern da muss 5 am Ende rauskommen....

Es kommt 6 raus, nicht 5 oder 0, sagt mein Compiler und die VM 😉

5+b++ = 15
Postinkrement!

6 & 15 = 6
 
Zuerst wird a*3 gerechnet. Anschließend 5 + b. Danach b um 1 erhöht (was aber keine Auswirkungen mehr auf die Berechnung hat) und anschließend ein AND-Vergleich zwischen den beiden Ergebnissen. Also angenommen a = 2 und b = 10 würde das so aussehen:

a*3 & 5+b++
2*3 & 5 + 10
6 & 15
0110 & 1111
0110
6

und dann wird aus b = 11
 
Er/sie meint mit "Tutor" keinen, der ein Tutorial geschrieben hat, sondern die Leute, die an der Uni rumlaufen. Sind selber Studenten und brauchen dringend Geld, weshalb sie dann versuchen, jüngeren Semestern das zu erklären, was sie damals selber nicht verstanden haben 😉
 
Pappenheimer++ hat gesagt.:
Er/sie meint mit "Tutor" keinen, der ein Tutorial geschrieben hat, sondern die Leute, die an der Uni rumlaufen.
Oder - rein vom Wort her - Oberstufenlehrer eines Gymnasiums, der die ihm zugeteilten Schüler bis zum Abitur begleitet bzw. zum Abitur führt.

Ark
 
maki hat gesagt.:
Es kommt 6 raus, nicht 5 oder 0, sagt mein Compiler und die VM 😉

Scheißegal was der Compiler sagt, einzig und allein ausschlaggebend
ist die Java Language Specification (und damit auch der von maki gegebene Link)

Edit: Huch! Das war ja maki selbst, der nochmal den Compiler zu Rate gezogen hat. :shock:
Traust du deinen eigenen Links nicht? ???:L ( 😎 )
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben