ITgenie98 Beide fragen basieren an sich auf ein und derselben Eigenschaft von Ruby, bzw einer Programmiersprache, die Playm schon gut erklärt hat. Hier meine zusammenfassung im Fall der fälle sollte es nicht verstanden worden sein: (wobei meine formelierung dann evt noch schwerer zu kapieren ist aber versuch macht kluch.. xD) ---Spoiler: --- Bei Zuweisungen oder Methoden (intern ist += eine Methode die auf das linke element angewendet wird), so wird zuerst der code rechts ausgeführt. [ruby] x = 4 y = 1 x += y += 2 [/ruby] So wird nun erst "y+=2" ausgeführt und y ist danach 3. Dann wird "x += y" ausgeführt, also "x += 3", und x ist dann 7. ---Spoiler Ende--- ==================================== Es wurde nicht besser, da && wie Playm wie schon gesagt hat es zum verbinden von Warheitswerten ist, und nicht zum kombinieren von berechnungen. Möchte man etwas nacheinander ausführen dann muss der code getrennt werden. Typischer weise wird das durch ein zeilenumbruch getan, kann aber auch durch ein ";" gemacht werden. So steht dann alles in einer zeile falls dies gewünscht ist. Im falle von nummern wird übrigens die höhere zahl genommen. Das heißt also: [ruby] x = 8 y = 3 x += 1 && y += 1 [/ruby] Nun wird ersteinmal wieder "y += 1" ausgeführt (y = 4). Danach wird "1 && y" bzw "1 && 4" ausgeführt, welches 4 ergibt. Danach dann halt "x += 4". Also zusammengefasst: [code]x += ( 1 && ( y += 1 ) )[/code] ==================================== Zum & operator: Zunächst wird "y += 1" ausgeführt (y = 4), danach wird "1 & 4" ausgeführt welches binär verglichen 0 ergibt. Dann wird "x += 0" ausgeführt und so kommst du auf das ergebnis von x = 8 und y = 4. Auch sind deine 1. binären rechnung darunter falsch: [code] 7 & 4 = 4 [/code] müsste es lauten. Du hast zum einen mal die zahl 4 falsch decodiert, binär ist das "100". "110" wäre die 6. Zum anderen hast du falsch die beiden ergebnise zusammengenommen: [code] 111 & 110 ------ = 110 [/code] Ein kleiner trick zum merken des & operator ist: überall wo eine "1" in der 2. zahl steht, da steht auch eine "1" im ergebnis. Alle anderen stellen müssen mit "0" aufgefüllt werden. (Funfact: dieses verfahren nennt sich auch bitwise masking) Mfg