это может показаться глупым вопросом, но это сбивает меня с толку в отношении ( ) и его позиции в php

#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