Frage zu nem Befehl

BIAsTeR

Mitglied
Moin,
hab seit 2 Wochen Javavorlesungen, daher wenig Ahnung...

haben gestern das erste mal am Rechner was gemacht, sollten das Heronverfahren prgrammieren, soweit wars nich so schwer, das einzige Problem war das ich nen Befehl nich kannt und der Prof einfach den da rein geschrieben hat ohne mir das genauer zu erklären.Einiges hab ich gefunden bei goolge aber ein Problem bleibt...

Ihr könnt mir bestimmt helfen, hier der Code:

for( ;Math.abs(x-y)>1e-6; )

Was bewirkt das ; vor Math?
Hat das was mit dem Schleifendurchlauf zu tun?

mfg
ben
 
Hallo!

Die for- Schleife hat allgemein den folgenden Aufbau:

Code:
for( Initialisierung (void) ; Abbruchbedingung (boolean); Modifikation (void)){
...
}

Hier mal ein paar (nicht alltägliche) Beispiele:
Code:
//Endlosschleife
		for (; true;) {

		}

for (int i = 0; i < 10 ;) {
			i++;
		}

int j = 0;
		for (; j < 5 ;) {
			j++;
		}

int j = 0;
		for (; true ; j++) {
			if(j > 10)
				break;
		}

for (int j = 0; j++ < 10; System.out.println("Foo")) {
			//bla ...
		}

Die Abbruchbedingung ist IMMER erforderlich, die Initialisierung und die Modifikation sind optional.

Bei deinem Beispiel werden die Verwendeten Variablen wohl außerhalb der Schleife deklariert und initialisiert. Weiterhin läuft die Schleife solange weiter bis die Bedingung:
Math.abs(x-y)>1e-6 nicht mehr erfüllt ist.

Das ganze hätte man IMHO besser über eine
while-Schleife gelöst
Code:
while( Math.abs(x-y)>1e-6 ){
//...bla
}
Statt dafür eine for-Schleife zu Mißbrauchen...

Gruß Tom
 
Zurück