2017-01-20 7 views
1

Я надеюсь, что кто-то может помочь мне здесь. Я имел взгляд и нашел кого-то, кто бы он такой же вопрос: Do-While Loop with Multiple ConditionsPHP do while with multiple while условия

Однако я проверил и не может видеть, где я буду неправильно

Вот мой код:

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

, и поэтому я ожидал следующее: либо код, чтобы остановить, когда X не был == 5 ИЛИ y было больше 5. Однако результат, который я получил, был x = 5 и y => 5

Чтобы поставить теорию к тесту я сменил свой код на:

$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; 

и в одном случае я закончил с:

--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 

Любые предложения о том, где я буду неправильно?

ответ

0

Вы хотите остановиться, когда (X = 5 or Y > 5). Состояние внутри время для продолжения, так что вы должны инвертировать условие: (X != 5 AND Y <= 5)

De Morgan Laws

+0

Большое спасибо! Как раз на последнем вопросе в конце этого: Как я могу проверить, является ли переменная isset и значение или переменная IE: while (! Isset ($ json-> meta-> code) И $ json-> meta-> code! = 200 AND $ retires! = 3) если код $ json-> meta-> не установлен, я получаю сообщение об ошибке :( –

+0

Все в порядке Я назначил $ json-> meta-> код переменной внутри цикла do и вместо этого проверяя это значение :) –