2017-01-20 3 views
1

Ich hoffe, dass Somone in der Lage sein könnte, mir hier zu helfen. Ich habe einen Blick hatte und fand jemanden, wer er gleiche Problem hatte: Do-While Loop with Multiple ConditionsPHP tun, während mit mehreren Bedingungen

Jedoch habe ich überprüft habe und kann nicht sehen, wo ich falsch

Hier gehe meinen Code ist:

$x=0; 
$y=0; 
do { 
$x = rand(0,5); 
$y++; 
} while ($x!=5 || $y<=5); 

und so habe ich folgendes erwartet: Entweder der Code zu stoppen, wenn X nicht == 5 ODER y war mehr als 5. Allerdings war das Ergebnis ich x = 5 und y => 5

Um die Theorie zu setzen Zum Test habe ich meinen Code geändert in:

$x=0; 
$y=0; 
echo'<br />--x-y'; 
do { 
    $x = rand(0,5); 
    $y++; 
    echo'<br />--'.$x.'-'.$y; 
    if($y>5) 
     echo"-I should finish here"; 
} while ($x!==5 || $y<=5); 
echo "<br />x=".$x; 
echo "<br />y=".$y; 

und in einem Fall landete ich mit:

--x-y 
--5-1 
--3-2 
--4-3 
--4-4 
--2-5 
--4-6-I should finish here 
--1-7-I should finish here 
--3-8-I should finish here 
--3-9-I should finish here 
--3-10-I should finish here 
--3-11-I should finish here 
--5-12-I should finish here 
x=5 
y=12 

Irgendwelche Vorschläge, wo ich falsch gehe?

Antwort

0

Sie möchten aufhören, wenn (X = 5 or Y > 5). Der Zustand im Inneren, während ist für die Fortsetzung, so müssen Sie den Zustand invers zu: (X != 5 AND Y <= 5)

De Morgan Laws

+0

Thank you very much! Nur zur letzten Frage auf der Rückseite: Wie kann ich überprüfen, ob eine Variable gesetzt ist und was der Wert oder die Variable IE: while (! Isset ($ json-> meta-> code) UND $ json-> meta-> code! = 200 AND $ retires! = 3) Wenn $ json-> meta-> code nicht gesetzt ist, erhalte ich einen Fehler :( –

+0

Es ist okay, dass ich $ json-> meta-> code einer Variablen innerhalb der do-Schleife zugewiesen habe und überprüfe diesen Wert stattdessen :) –