For Schleifen Problem

HarryHut

Mitglied
Wenn ich bei meiner For Schleife die Variablen global setze also

private int x = 0;
private int y = 0;

und dann die Schleifen
Code:
       for (; x <= 100; x++) {
            for (; y <= 100; y++) {
}
}

ausführe, zählt die x variable nicht nach oben d.h. das Ergebnis lautet 0,1; 0,2; usw... bis 0,100. Ich brauche die Variable aber global da die For-Schleifen nicht immer wieder bei 0 anfangen sollen?

Hat jemand eine Lösung?
Danke!
 
Hallo Harry,

schau mal hier:

Code:
public class GlobalForLoopExample {

	static int x = 1;

	static int y = 1;

	public static void main(String[] args) {
		for (int i = x; i < 10; i++)
			for (int j = y; j < 10; j++)
				System.out.println(i * j);
	}
}


Vg Erdal
 
Es ist schon eigenartig, das er dein x nicht hochzaehlt, eigentlich muesstest du dann auch eine Endlosschleife haben, da x nie 100 erreicht.

Ich vermute, das etwas mit deiner Ausgabe nicht stimmt. Die Loesung von flashray ist nur bedingt gut, da du dann nur noch eine Instanz von der Klassen benutzen kannst. Ausser der Zaehler soll bei allen gleich sein, dann empfehle ich dir die Loesung.
 
lautet 0,1; 0,2; usw... bis 0,100

Nach meiner Auffassung ist das völlig richtig.

Code:
For x = 0 to 100
   For y = 0 to 100
      'Mache irgendwas
   Next
Next

(Das ist jetzt mal in VB, aber sagt das Gleiche aus.)

Zuerst werden für x = 0 alle y durchlaufen (100), danach wird x auf 1 gesetzt und wieder alle y durchlaufen, soll heißen, erst wenn für alle x = 0 die 100 y gefüllt sind, wird x auf 1 gesetzt - vorher nicht.

MfG ..::SD::..
 
Richtig, er zaehlt x hoch, da aber y immer auf 100 bleibt ist die Bedingung von deiner zweiten Schleife nicht erfuellt und es gibt keine Ausgabe...
 
Ja, genau. Jetzt hab ich das auch verstanden wo Dein Problem liegt.
Du müßtest y zurücksetzen, da sonst die innere Schleife schon mit y = 100 beginnt und somit sofort die Abbruchbedingung erfüllt ist.

MfG ..::SD::..
 
Zurück