Java, programmieren

Ja gut :smile:
Danke noch einmal!

Mit Eclipse, ich weiß auch nie was du mit einem Debugger
meinst.

Puh das ist ein wichtiges Werkzeug. Du kannst Punkte im
Quellcode setzen, dort hÀlt die Entwicklungsumgebung an und du
kannst dir anschauen welche Werte die Variablen haben und dann
das Programm Schritt fĂŒr Schritt „durchlaufen“. Wurde dir das
noch nie erklÀrt?

Debugger sind wirklich wichtige Werkzeuge, aber ich wĂŒrde auf diesem Level immer empfehlen, den Code zu lesen und zu verstehen und nicht direkt mit dem Debugger reinzugehen.

Ansonsten sieht http://www.vogella.de/articles/EclipseDebugging/arti
 ganz gelungen aus. Damit kommst Du jedenfalls an die Begrifflichkeit ran und siehst anhand der Screenshots auch beim Lesen schon, was passieren soll.

Hallo, ich bin’s nochmal :smile:
ich muss jetzt das Programm noch so abÀndern, dass ich die for-Schleife durch eine while-Schleife ersetze. Ich habe schon ein bisschen angefangen, jedoch wird nur die 1. Zeile ausgegeben und ich komme nicht drauf wieso das so ist:

public class Main {

static void schleifenMethode(int a) {
int i = 0;
int j = 0;
while (i

Hallo

Wie groß ist denn j bevor die innere Schleife das zweite Mal durchlaufen werden soll?

GrĂŒĂŸe

Michael

j ist dann wieder 0

Das sehe ich nicht so. Wo setzt du denn j wieder auf 0?

Nachdem die innere Schleife durchlaufen wurde, wird i auf 1 gesetzt und j wird wieder von 0 bis 4 durchlaufen

Wo steht denn das dann in deinem Code? j setzt sich doch nicht von alleine auf 0, das musst du schon irgendwo selber machen.

außerhalb der schleife steht doch i=0 und j=0.

Ja, außerhalb der Ă€ußeren Schleife aber da kommt doch das Programm gar nicht mehr hin.

Aber wenn ich in die Schleife i=0 schreibe, kommt eine Endlosschleife.
Wie muss ich das Programm denn abÀndern dass es richtig lÀuft?

Da hast du recht. Die Ă€ußere Schleife mit i muss auch nur einmal durchlaufen werden. Die innere Schleife mit j muss mehrmals durchlafen werden. Mit ein bisschen Überlegung weißt du jetzt was du Ă€ndern musst.

Ich hab jetzt schon die ganze zeit ĂŒberlegt und komm leider nicht darauf.

Also gut noch ein kleiner Tipp.

Im Moment lÀuft dein Programm so ab:

Du kommst in die Ă€ußere Schleife. i wird auf 1 erhöht. Danach wird die innere Schleife 5 mal durchlaufen. Danach ist j = 5. Dann springt das Programm wieder zur Ă€ußeren Schleife und i wird auf 2 erhöht. Das Programm kommt wieder zur inneren Schleife, mĂŒsste diese eigentlich wieder 5 mal durchlaufen aber merkt, dass j bereits 5 ist. -> springt wieder zur Ă€ußeren Schleife -> i wird auf 3 erhöht. -> wieder zur inneren Schleife -> j ist immernoch 5 -> springt wieder zur Ă€ußeren Schleife -> i wird auf 4 erhöht -> wieder zur inneren Schleife -> j ist immernoch 5 -> springt wieder zur Ă€ußeren Schleife -> i wird auf 5 erhöht -> wieder zur inneren Schleife -> j ist immernoch 5 -> springt wieder zur Ă€ußeren Schleife -> Abbruchbedingung fĂŒr die Ă€ußere Schleife ist erfĂŒllt -> return

Jetzt hab ich es endlich herausgefunden, weil ich dank deiner Beschreibung erst wusste, wie das Programm ablÀuft :smile:

public class Main {

static void schleifenMethode(int a) {
int i = 0;
int j = 0;
while (i

Jetzt sieht das doch schon besser aus :smile:

GrĂŒĂŸe

Michael

Und danke fĂŒr deine Hilfe.
Bestimmt warst du schon kurz vorm Verzweifeln bei mir :smile: