PHP do-loop метод

Не могу понять, где это не работает. В центре мне нужна линия только с ++++++. Но я не могу найти это, чтобы работать. Он работает с циклом while и циклом for, но не с циклом do while.

Это должно выглядеть так

          -------+
------++
-----+++
----++++
---+++++
--++++++
-+++++++
++++++++
-+++++++

и т.д. Но средняя строка — это не полная строка символов +.

     <?php
echo"<p>Do While loop</p>";
$x1=8;
$x2=1;
do {
$x3=1;
do {
echo"--";
$x3++;
}while($x3<$x1);
$x4=1;
do {
echo"+";
$x4++;
}while($x4<=$x2);
echo"<br>";
$x1--;
$x2++;
}while($x1>=0 and $x2<=8);

$y1=1;
$y2=7;
do {
$y3=1;
do {
echo"--";
$y3++;
}while($y3<=$y1);
$y4=1;
do {
echo"+";
$y4++;
}while($y4<=$y2);
echo"<br>";
$y1++;
$y2--;
}while($y1<=7 and $y2>=1);

?>

-1

Решение

Этого никогда не случится.

do { /*Line 4*/
echo"--";
$x3++;
}while($x3<$x1);

Эхо будет оцениваться до перерыва вопроса.

В этом основная разница между циклом do while и while. В цикле while условие оценивается раньше всего. В цикле do while все остальное оценивается перед первой проверкой условия.

0

Другие решения

хорошо я понял это в конце. Помещая if ($ x1<= 1) {break;} после первого внутреннего цикла do я заставлю цикл пропустить и продолжить оттуда.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector