Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Sonstige Fragen » Zuweisungsoperatoren » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 6 Beiträge
123michi19

Vielen Dank :-) Jetzt klappt es :-)
eulerscheZahl

Zitat:
Die Abarbeitung
erfolgt bei Zuweisungsoperatoren von rechts nach links.
Das würde doch für die 4. Zeile heißen:
System.out.println (z+=x+=y);
y = y+x = 2+3 = 5
x = x+z = 13 +3 = 16

Nein geschockt
es steht weiterhinlinks die Variable, in die etwas geschrieben wird und rechts steht, was dorthin geschrieben wird. Du hast aber 2 Zuweisungen in einer Zeile, die werden von rechts nach links ausgeführt, also:
x+=y; --> x = x+y = 3+2 = 5
z+=x; --> z = z+x = 13+5 = 18
123michi19

Hi :-)

Ich habe das Thema hier gerade gefunden und hätte auch eine Frage dazu (Habe das Gleiche Programm zu schreiben)

Der Code:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
/*Test.java*/
public class Test
{
	public static void main (String[]args)
	{
		int x=3, y=2, z;
		System.out.println (z=x+1);
		System.out.println (z+=x+1);
		System.out.println (z+=x+y); //Bis hierhin ist alles verständlich
                /*Ab den nachfolgenden Zeilen gibt es Probleme und ich verstehe leider
 auch den vorhergehenden Beitrag nicht so ganz. Die Abarbeitung 
erfolgt bei Zuweisungsoperatoren von rechts nach links. 
Das würde doch für die 4. Zeile heißen:
System.out.println (z+=x+=y);
y = y+x = 2+3 = 5
x = x+z = 13 +3 = 16
Das Ergebnis lautet 18, aber ich komme nicht darauf :-(
In der nächsten Zeile das gleiche Problem:		
System.out.println (z+=x+=y=1);
1 = 
y = y+x
x = x+z
*/	
	}
}


Vielen Dank für Eure Unterstützung :-)
Matthias

Super, danke für deine Hilfe. Daumen hoch
eulerscheZahl RE: Zuweisungsoperatoren

Starten könntest du mit einer vollständigen Angabe (der Compiler beschwert sich, dass z nicht initialisiert ist, ich setze es einfacfh mal zu 0)

Verbindungen von mehreren Zuweisungen werden von rechts nach links abgearbeitet.
Also:
x += y
--> x = x + y = 3 + 2 = 5
z += x
--> z = z + x = 0 + 5 = 5
das z wird dann auch ausgegeben.
für die nächste Zeile musst du dann mit x = z = 5 weiterrechnen
Matthias Zuweisungsoperatoren

Meine Frage:
Hallo zusammen,

ich hätte eine Frage zu Zuweisungsoperatoren.

Ich weiß, dass es eine verkürzte Schreibweise gibt und der Vorteil darin liegt, dass diese einen schnelleren Code erzeugen und der Erhöhung einer Variable um einen konstanten Betrag dienen.

Allerdings kann ich, sobald Aufgaben dazu vorliegen, nichts damit anfangen.

int x,y,z;

x = 3;
y = 2;
z;


System.out.println (z += x += y)
System.out.println (z += x += y = 1)



Meine Ideen:
Wie gehe ich denn am Besten an sowas ran?


Vielen Dank :-)