Seite 1 von 1

while-Schleife mit OR

Verfasst: 24.04.2005 01:11
von Tarlar
ich habe folgendes geproggt. Leider gibts es da eine Endlosschleife:

Code: Alles auswählen

$i = 5;
$h = 6;

while ($i != 0 OR $h != 0)
   {
   echo "Hallo";
   $i = $i - 1;
   $h = $h - 1;
   }
Wenn ich in die while-Schleife nur das hier schreibe:

Code: Alles auswählen

$i = 5;
$h = 6;

while ($i != 0)
   {
   echo "Hallo";
   $i = $i - 1;
   }
Dann kommt 5mal Hallo.

Jetzt nehme ich an, dass OR in einer while-Schleife nicht eingesetzt werden kann. Stimmt das?

Verfasst: 24.04.2005 04:54
von Pyramide
Man kann schon OR verwenden, in deinem Fall jedoch trifft die Bedingung immer zu. Du kannst dir ja mal die beiden Variablen in der Schleife ausgeben lassen, dann siehst du daß immer eine der beiden nicht 0 ist.

Verfasst: 24.04.2005 09:00
von mr.no-name
Jop, ich hatte ihm schon gesagt, dass er and nutzen muss, um zum gewünschten Ergebnis zu kommen :)

Verfasst: 24.04.2005 13:09
von Pyramide
Oder z.B. while(!($i == 0 || $h == 0)) - wobei ich persönlich diese komplette negation nur nutze, wenn es unbedingt sein muss (in diesem Fall also z.B. wenn es sich um eine Aufgabe handelt und zwingend die Verwendung von OR vorgeschrieben ist)