For-Schleifen als While-Loop

Hey Leute,

In der Schule haben wir neulich mit der Visualisierung von Sortiervorgängen begonnen. Bisher habe ich (unter Benutzung von OpenGL) bereits die Darstellung einer Menge von werten problemlos geschaft, die Problematik die sich nun darstellt ist Folgende.
Wir sollen in unserem Render-Loop (der beinahe eine Endlosschleife ist und durch Enter abgebrochen werden kann) einen Bubblesort-Algotythmus so gestalten, dass er je Itteration einen Schritt weiter sortiert.
Hat jemand eine Idee wie ich das hinbekommen könnte?

hast du denn nun schon irgendwas, was nicht Endlosschleife ist? nach welcher Bedingung beendet sich das von alleine?

eine einfache while-Variante einer for-Schleife, wie hier Bubblesort 0 bis N, ist eine int-Zählvariable die erhöht wird,
break;-Befehl wenn if-Bedingung erreicht ist beendet die Schleife wie auch wohl ein break; bei Enter?

Alternative zu break; ist auch immer, die Bedingung in die while-Schleifen-Bedingung reinschreiben,
da können auch mehrere Bedingungen stehen, per OR/ AND verknüpft

insgesamt viel mehr Details, skizzierter Beispielcode, hilfreich

Also zuförderst zu der While-Schleife:
Es ist ein Endlos-Loop der die graphische Darstellung übernimmt, ergo ist jede Itteration der Schleife ein Frame.

/*Globale Variabelen dabei sind:
int [] zahlen welches die darzustellenden Daten enthält
int HÖHE welches die Höhe des Fenstersbeschreibt (analog dazu int BREITE)
int max welches die Maximale Größe der Zufallsdaten angibt
*/

while (!Display.isCloseRequested()) {
		glBegin(GL11.GL_QUADS);
		switch(state){
		case 0:
			normalDarstellung();//Die Darstellung des Arrays von Daten
		break;
		case 1:
		}
		normalDarstellung();
		glEnd();
	    Display.update();
	    //Events
		while(Keyboard.next()) {
			if(Keyboard.isKeyDown(Keyboard.KEY_ESCAPE)){
				Display.destroy();
				System.exit(0);
				}//So kann der Loop gebrochen werden
		}
	}

  public static void normalDarstellung(){
    	for(int i = 0; i<zahlen.length;i++){
			glVertex2d(zahlen***(HÖHE/max),i*(BREITE/zahlen.length));
			glVertex2d(0, i*(BREITE/zahlen.length));
			glVertex2d(0, (i+1)*(BREITE/zahlen.length));
			glVertex2d(zahlen***(HÖHE/max), (i+1)*(BREITE/zahlen.length));
			
		}
    }

Ich suche nun eine Funktion die Analog zu der Funktion normalDartsellung funktioniert und anstatt in jeder Itteration alle Daten nur darzustellen, einen Schritt eines Bubblesortalgorythmus durchführt und im anschluss dann normalDarstellung() ausführt um den Fortschritt an zu zeigen…

normalDarstellung()-Aufruf in Zeile 12 und 16?

Bubblesort für sich solltest du kennenlernen, Code gibt es überall,
mitten in diese Schleife reingeklascht wäre es nicht so schön,
lieber alles in einem eigenen Objekt vorhalten,
in der Schleife nur bubble.nextStep(); oder so ähnlich, die Methode erhöht einen Zähler um 1 und ändert die Datenlage, irgendein Array

das kannst du mit einer normalen while-Schleife und normaler Ausgabe komplett ohne GL testen,
dabei dann auch gleich über Überlauf am Ende nachdenken,
was ist wenn alle Steps abgearbeitet, wie soll bubble auf einen nextStep() reagieren, soll die Schleife noch weiterlaufen, usw.

für die GL-Darstellung letztlich auch auf die Daten von bubble zugreifen, ihren aktuellen Stand darstellen
Kommentar ‘Die Darstellung des Arrays von Daten’ klingt ja zuversichtlich

Ja da habe ich mich wohl verschrieben…
Das mit der externen Methode ist echt ne gute Idee danke…
Die einzige Frage die ich mir immer stelle wenn ich mich annähernd Objektorientierter Programmierung auseinandersetze wäre dann ob das Array das ich an das bubble Objekt übergäbe sich bei der veränderung durch das Objekt auch im Hauptcode ändert.

int[] x = new int[1];
bubble test = new bubble(x)
bubble.setAt(0,2)//setze Wert 2 an stelle null
//funktioniert danach
System.out.println(x[0]);

Die Dartsellung von daten Funktioniert wirklich gut und ich sollte in der lage sein wenn ich die Logik für den bubble.nextStep algorythmus erarbeitet habe in der Lage sein Bubblesort darzustellen.

Danke

ja, wobei idealerweise bubble (Klassen immer groß schreiben, Variablen klein) seine Daten intern selber verwaltet