Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 

Vorheriges Thema | Nächstes Thema 

Autor Nachricht
 Betreff des Beitrags: Frage zu Kapitel 1.6.3 und 2.6.1
BeitragVerfasst: 12. September 2010, 10:28 
1.Semester
Benutzeravatar

Registriert: 11. September 2010, 16:12
Beiträge: 21
Wohnort: Germering (bei München)
Hallo und erstaml vielen Dank für das Buch und dieses Forum.

Ich selbst bin Java-Anfänger, hatte aber früher in der Schule oder jetzt gerade in der Hochschule mit TurboPascal ein ganz klein wenig zu tun.

Meine Fragen:

1.) Bei Kapitel 1.6.3 (Seite 16) geht es um den Unterschied zwischen "++a" und "a++".

Beispiel aus dem Buch:

int a, b, c = 0;
a = c++;
b = ++c;

"a++" habe ich an sich verstanden, glaube ich jedenfalls. Wenn a 0 war, ist es nach a++ 1.
Demanch müsste a doch den Wert 1 haben, und nicht 0 wie unter dem Beispiel steht.
Des weiteren steht im Beispiel noch: "b=++c" und b hat dann den Wert 2,wieso???? Den Unterschied habe ich noch nicht verstanden. Denn b nimmt ja den Wert von ++c an, aber c ist ja erst 0 und dann 1, und wird dann wieder um 1 erhöht, oder nicht? Wenn ja, was macht dann den Unterschied aus, weil ich ja mit beiden Ausdrücken den Wert um 1 erhöhe?
Kann mir das bitte einer genau erklären.

2.) Bei Kapitel 2.6.1 (Seite 34) geht es um die if-Verzweigung.

Beispiel:

if (a<b)
c=b;
else
c=a;

Darunter steht: "Im Anschluss ist der maximale Wert von a und b in c gespeichert."
Sollte es nicht heißen: "Im Anschluss ist der maximale Wert von a oder b in c gespeichert."???
Immerhin wird ja nichts addiert oder zusammengefasst,sondern nur ein Wert in c gespeichert.

3.) Bei Kapitel 2.8.2 Sprung mit continue.

Den Sprung habe ich noch nicht ganz verstanden, kann aber auch daran liegen, dass es gestern abend um 11 war und ich schon lange gearbeitet hatte. Werde es mir dann noch mal in Ruhe mit dem Beispiel und der Bildschirmausgabe anschauen.
Vielen Dank schon mal im voraus und liebe Grüße

Michamann

_________________
Liebe Grüße

Michamann


Nach oben
 Offline     Profil  
 
 Betreff des Beitrags: Re: Frage zu Kapitel 1.6.3 und 2.6.1
BeitragVerfasst: 12. September 2010, 10:47 
Administrator
Benutzeravatar

Registriert: 28. April 2008, 12:03
Beiträge: 1238
Wohnort: Berlin
Hi Michamann,

Ich habe mal Deinen Thread verschoben ... ich glaube, dass er hierhin besser passt.

Zitat:
1.) Bei Kapitel 1.6.3 (Seite 16) geht es um den Unterschied zwischen "++a" und "a++".

Beispiel aus dem Buch:

int a, b, c = 0;
a = c++;
b = ++c;

"a++" habe ich an sich verstanden, glaube ich jedenfalls. Wenn a 0 war, ist es nach a++ 1.
Demanch müsste a doch den Wert 1 haben, und nicht 0 wie unter dem Beispiel steht.
Des weiteren steht im Beispiel noch: "b=++c" und b hat dann den Wert 2,wieso???? Den Unterschied habe ich noch nicht verstanden. Denn b nimmt ja den Wert von ++c an, aber c ist ja erst 0 und dann 1, und wird dann wieder um 1 erhöht, oder nicht? Wenn ja, was macht dann den Unterschied aus, weil ich ja mit beiden Ausdrücken den Wert um 1 erhöhe?
Kann mir das bitte einer genau erklären.


Wir können für a=a+1 (also die Inkrementierung des Inhalts von a um 1) kurz schreiben: a++ oder
++a. Wenn wir das in eine Programmzeile tun, gibt es keinen Unterschied.

Verwenden wir das aber in einer Formel, z.B. int b = a++, dann werden daraus theoretisch
zwei Zeilen gemacht: b=a und a=a+1. Es wird also erst der Inhalt von a nach b kopiert und
anschließend um 1 erhöht. Anders verhält es sich bei int b = ++a; Dann werden die Zeilen
vertauscht und es wird erst a um 1 erhöht und anschließend in b kopiert.


Das erstmal zu 1)


Marco

_________________
Schachblocki

--------------------------------
"Qui dilisit disciplinam - dilisit scientiam."
Prov.XII.1.


Nach oben
 Offline     Profil  
 
 Betreff des Beitrags: Re: Frage zu Kapitel 1.6.3 und 2.6.1
BeitragVerfasst: 12. September 2010, 11:13 
Administrator
Benutzeravatar

Registriert: 28. April 2008, 12:03
Beiträge: 1238
Wohnort: Berlin
Hier Teil 2:

Zitat:
2.) Bei Kapitel 2.6.1 (Seite 34) geht es um die if-Verzweigung.

Beispiel:

if (a<b)
c=b;
else
c=a;

Darunter steht: "Im Anschluss ist der maximale Wert von a und b in c gespeichert."
Sollte es nicht heißen: "Im Anschluss ist der maximale Wert von a oder b in c gespeichert."???
Immerhin wird ja nichts addiert oder zusammengefasst,sondern nur ein Wert in c gespeichert.


Sprachlich würde ich sagen, dass wir das Maximum zweier Zahlen nehmen und die Menge
a und b ausmacht, also ist mein Satz doch logisch ganz ok :). Das hat weder etwas mit addieren
noch zusammenfassen zu tun...


viele Grüße,
Marco

_________________
Schachblocki

--------------------------------
"Qui dilisit disciplinam - dilisit scientiam."
Prov.XII.1.


Nach oben
 Offline     Profil  
 
 Betreff des Beitrags: Re: Frage zu Kapitel 1.6.3 und 2.6.1
BeitragVerfasst: 12. September 2010, 11:14 
Administrator
Benutzeravatar

Registriert: 28. April 2008, 12:03
Beiträge: 1238
Wohnort: Berlin
Teil 3:

Zitat:
3.) Bei Kapitel 2.8.2 Sprung mit continue.

Den Sprung habe ich noch nicht ganz verstanden, kann aber auch daran liegen, dass es gestern abend um 11 war und ich schon lange gearbeitet hatte. Werde es mir dann noch mal in Ruhe mit dem Beispiel und der Bildschirmausgabe anschauen.


Ja das mit dem Sprung ist so eine Sache, aber ich denke, dass es mit dem Beispiel gut
zu verstehen ist. Hast Du es nochmal probiert?

viele Grüße,
Marco

_________________
Schachblocki

--------------------------------
"Qui dilisit disciplinam - dilisit scientiam."
Prov.XII.1.


Nach oben
 Offline     Profil  
 
 Betreff des Beitrags: Re: Frage zu Kapitel 1.6.3 und 2.6.1
BeitragVerfasst: 12. September 2010, 19:01 
1.Semester
Benutzeravatar

Registriert: 11. September 2010, 16:12
Beiträge: 21
Wohnort: Germering (bei München)
Hallo Marco,

vielen Dank für Deine Antworten.

Frage 1 hab ich jetzt verstanden.
Frage 2 passt so.
Frage 3 hab ich mir heute mal in Ruhe angeschaut und kapiert, dass er dann an den Anfang der aktuellen Schleife springt und nicht wie break abbricht.

Noch mal Danke und liebe Grüße

Micha

_________________
Liebe Grüße

Michamann


Nach oben
 Offline     Profil  
 
 Betreff des Beitrags: Re: Frage zu Kapitel 1.6.3 und 2.6.1
BeitragVerfasst: 8. August 2013, 20:03 
1.Semester
Benutzeravatar

Registriert: 5. August 2013, 21:48
Beiträge: 4
Wohnort: Berlin
Schachblocki hat geschrieben:
Hi Michamann,

Ich habe mal Deinen Thread verschoben ... ich glaube, dass er hierhin besser passt.

Zitat:
1.) Bei Kapitel 1.6.3 (Seite 16) geht es um den Unterschied zwischen "++a" und "a++".

Beispiel aus dem Buch:

int a, b, c = 0;
a = c++;
b = ++c;

"a++" habe ich an sich verstanden, glaube ich jedenfalls. Wenn a 0 war, ist es nach a++ 1.
Demanch müsste a doch den Wert 1 haben, und nicht 0 wie unter dem Beispiel steht.
Des weiteren steht im Beispiel noch: "b=++c" und b hat dann den Wert 2,wieso???? Den Unterschied habe ich noch nicht verstanden. Denn b nimmt ja den Wert von ++c an, aber c ist ja erst 0 und dann 1, und wird dann wieder um 1 erhöht, oder nicht? Wenn ja, was macht dann den Unterschied aus, weil ich ja mit beiden Ausdrücken den Wert um 1 erhöhe?
Kann mir das bitte einer genau erklären.


Wir können für a=a+1 (also die Inkrementierung des Inhalts von a um 1) kurz schreiben: a++ oder
++a. Wenn wir das in eine Programmzeile tun, gibt es keinen Unterschied.

Verwenden wir das aber in einer Formel, z.B. int b = a++, dann werden daraus theoretisch
zwei Zeilen gemacht: b=a und a=a+1. Es wird also erst der Inhalt von a nach b kopiert und
anschließend um 1 erhöht. Anders verhält es sich bei int b = ++a; Dann werden die Zeilen
vertauscht und es wird erst a um 1 erhöht und anschließend in b kopiert.

Das erstmal zu 1)
Marco




:?: mir ist die erklärung immer noch nicht schlüssig wie man bei b auf 2 kommt, und nicht auf 1.

ein beispiel wie ich es verstanden hab, anstatt 0 hab ich eine 2 genommen.

a = 2;
a = ++a; // a = 3
b = 2;
b = b++; // b = 2


Nach oben
 Offline     Profil  
 
 Betreff des Beitrags: Re: Frage zu Kapitel 1.6.3 und 2.6.1
BeitragVerfasst: 9. August 2013, 19:49 
Java-Tutor
Benutzeravatar

Registriert: 16. Januar 2009, 20:00
Beiträge: 85

ist äquivalent zu
  1.  
  2. int b = a;
  3. a=b;
  4. b=b+1;
  5.  


was zur Folge hat, dass a unverändert bleibt, aber


ist äquivalent zu
  1.  
  2. int b = a;
  3. b=b+1;
  4. a=b;
  5.  

das verändert a sehr wohl


Nach oben
 Offline     Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB © 2007 phpBB Group


Picksel Media Marco Block © 2006-2009 – ImpressumKontakt
Gestaltung und Umsetzung Tobias Losch, www.picksel-media.de