#php #loops #while-loop #break
#php #циклы #while-цикл #перерыв
Вопрос:
этот код печатает до 10##
<?php
$value=1;
do{
echo $value."<hr>";
if ($value>=10) {
break;
}
$value ;
}while (true);
?>
Но этот код печатает до 9
<?php
$value=1;
do{
echo $value."<hr>";
$value ;
if ($value>=10) {
break;
}
}while (true);
?>
Комментарии:
1. Вы просмотрели документацию для операторов увеличения / уменьшения ? Что-нибудь конкретное оттуда, что вы не понимаете?
2. Этот вопрос, похоже, действительно касается логического потока вашего кода. Поздравляем — вы успешно обнаружили, что внесение изменений в ваш порядок операций существенно влияет на ваши результаты! Вы могли бы настоятельно рассмотреть возможность улучшения вашего синтаксиса PHP и понимания общих логических потоков, если это то, что на самом деле сбивает вас с толку.
Ответ №1:
В первом случае вы напечатаете 10, поймете, что это 10 (оператор if), затем прервите. Во втором случае вы напечатаете 9, увеличите его до 10, затем поймете, что это 10 и прервется, таким образом, никогда не печатая 10.
Поэтому, если вы хотите, чтобы второй также печатал 10, вам нужно добавить больше echo после , тем самым гарантируя, что значение увеличивается до достижения разрыва.
Ответ №2:
- значение печати (выводит 1)
- (добавляет 1 к значению $)
- проверьте, равно ли значение> или = 10, и прервите, если оно
вот почему ваш цикл никогда не доходит до печати 10, поскольку он прерывается, когда значение равно 10