# FOR schleife mit 2+ variablen



## em3L (14. April 2007)

So erstma Hallo bin neu hier im Forum 
Aber nun mal direkt zu meinem Problem...
Ich möchte gerne eine For-schleife mit 2 bedingungen also z.B. so:

```
for ($i = 0, $x = 0; $i < 5 or $x < 6; $i++, $x++) { ... }
```
Aber so geht es leider nicht 
Weis einer ob dass überhaupt möglich ist? Oder muss man es komplett anderst machen?
Danke im Vorraus, em3L


----------



## -GS-Master (14. April 2007)

Was willste den mit deinem Versuch bezwecken?
Muss bei dem Code irgendwie lachen -.- naja egal ^^
Wenn wir wissen was du machen willst, wäre das vielleicht hilfreich ... oder?


----------



## em3L (14. April 2007)

Joa alse es geht um ein "kleines" Browsergame script.
Denn als erstes soll die schleife die anzahl der Farhzeuge durchzählen, also wieviele es überhaupt gibt, dann soll es zusätzlich die angriffspunkte von jeweiligem Fahrzeug mitzählen aber sobald die Angriffspunkte oder die Anzahl an Fahrzeugen zu Ende ist soll die Schleife beenden!
Dass soll so sein da dies dass Scipt dazu ist wieviele Fahrzeuge man bei einem Angriff verliert, man verliert nämlich so viele wie der Gegner angriffspunkte hat. Aber da die Angriffspunkte nicht immer einer "1" entsprechen kann es nicht die gleiche Variable sein! 
Ok wer dass versteht darf sich ein Eis backen  Aber besser konnt ichs einfach nicht erklären^^

```
for ($i = 0; $i < $anzahl_fahrzeuge or $x < $gegner_angriffspunkte; $i++) {
	if ($fahrzeuge_vorhanden_db[$i] == 0) {
		//leer
	}
	else {
		$fahrzeug_now[$i] = $fahrzeuge_vorhanden_db[$i] - 1;
		$x = $x + $fahrzeug_angriff[$i];
	}
}
```


----------



## Gumbo (14. April 2007)

Ja dies Art von for-Konstrukt ist erlaubt. Wenn der Wert beider Laufvariablen innerhalb des Konstrukts nicht weiter verändert wird, gibt es sechs Wiederholungen.


----------



## -GS-Master (14. April 2007)

Und wenn er statt or ein Kommata einsetzt wird es 12 mal wiederholt ^^


----------



## em3L (14. April 2007)

Gumbo hat gesagt.:


> Ja dies Art von for-Konstrukt ist erlaubt. Wenn der Wert beider Laufvariablen innerhalb des Konstrukts nicht weiter verändert wird, gibt es sechs Wiederholungen.



Ah ok danke  Ich hatte irgendwie dass gefühl dass es nicht geht 0.o
Erledigt


----------



## -GS-Master (14. April 2007)

Hättest es nur testen müssen -.- oder hast das?


----------



## em3L (15. April 2007)

Hab es getestet doch dann kam der Fehler: Fatal error: Allowed memory size of 50331648 bytes exhausted (tried to allocate 4194304 bytes) in....
Also wahrscheinlich dass ich ausversehen eine Endlosschleife reingebaut hab, dann dachte ich dass liegt bestimmt daran dass ich 2 bedingungen in der FOR schleife drinne hab.
Aber da es ja so geht, muss es an was anderem liegen 
Hab dass nämlich so gemacht:

```
for ($i = 0; $i < $anzahl_einheiten or $x <= $gegner_angriffspunkte; $i++) {
	if ($abzug_einheit_db[$i] < 1) {
		$einheit_now[$i] = $einheit_db[$i];
	}
   else {
		$einheit_now[$i] = $einheit_db[$i] - 1;
		$x = $x + $einheit_angriff[$i];
	}
}
for ($i = 0; $i < $anzahl_fahrzeuge or $x <= $gegner_angriffspunkte; $i++) {
	if ($abzug_fahrzeug_db[$i] < 0) {
		$fahrzeug_now[$i] = $fahrzeug_db[$i];
	}
	else {
		$fahrzeug_now[$i] = $fahrzeug_db[$i] - 1;
		$x = $x + $fahrzeug_angriff[$i];
	}
}
```
Und der Fehler kommt immer in der Linie wo ich mit der ersten IF anfange?!
Vtl. ist dass Script eifnach zu groß, was ich aber nicht glaube!


----------

