Не могу понять, где это не работает. В центре мне нужна линия только с ++++++. Но я не могу найти это, чтобы работать. Он работает с циклом 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);
?>
Этого никогда не случится.
do { /*Line 4*/
echo"--";
$x3++;
}while($x3<$x1);
Эхо будет оцениваться до перерыва вопроса.
В этом основная разница между циклом do while и while. В цикле while условие оценивается раньше всего. В цикле do while все остальное оценивается перед первой проверкой условия.
хорошо я понял это в конце. Помещая if ($ x1<= 1) {break;} после первого внутреннего цикла do я заставлю цикл пропустить и продолжить оттуда.