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

Informatiker Board » Themengebiete » Sonstige Fragen » Zuweisungsoperatoren » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Zuweisungsoperatoren
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Matthias
unregistriert
Zuweisungsoperatoren Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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 :-)
26.10.2014 14:44
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

RE: Zuweisungsoperatoren Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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

__________________
Syntax Highlighting fürs Board (Link)
26.10.2014 15:42 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Matthias
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Super, danke für deine Hilfe. Daumen hoch
26.10.2014 16:43
123michi19
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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 :-)
13.11.2014 01:02
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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

__________________
Syntax Highlighting fürs Board (Link)
13.11.2014 06:07 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
123michi19
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Vielen Dank :-) Jetzt klappt es :-)
15.11.2014 09:30
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Sonstige Fragen » Zuweisungsoperatoren