Моя проблема: я хочу посчитать в обратном порядке в цикле for.
Это противоположно тому, что я хочу сделать:
for($i=1;$i<=10;$i++){
echo $i;
}
Если поставить $i--
не работает (у меня падает сервер).
Помогите мне!
С уважением, Адам
Моя проблема: я хочу посчитать в обратном порядке в цикле for.
Это противоположно тому, что я хочу сделать:
for($i=1;$i<=10;$i++){
echo $i;
}
Если поставить $i--
не работает (у меня падает сервер).
Помогите мне!
С уважением, Адам
Когда вы говорите, что $i--
приводит к сбою вашего сервера, вы изменили инициализацию и условие для $i
?
for($i=10; $i>=1; $i--){
echo $i;
}
Если вы возьмете for
, как вы написали, и просто замените $i++
на $i--
, значение $i
будет уменьшаться с каждой итерацией (1, 0, -1, -2 и т. д.), а условие цикла $i<=10
всегда будет истинным.
Если вы хотите считать в обратном порядке, вам также необходимо изменить другие части (условие инициализации и зацикливания):
for ($i=10; $i>=1; $i--){
echo $i;
}
Или вы берете последнее и вычитаете из него текущее значение и добавляете к нему первое значение:
for ($first=1, $i=$first, $last=10; $i<=$last; $i++){
echo $last - $i + $first;
}
Я не понимаю, просто делаю
for($i=10;$i>=1;$i--){
echo $i;
}
недостаточно?
оператор for (expr1; expr2; expr3)
Первое выражение (expr1) оценивается (выполняется) один раз безоговорочно в начале цикла.
В начале каждой итерации оценивается expr2. Если он оценивается как TRUE, цикл продолжается, и выполняются вложенные операторы. Если он оценивается как FALSE, выполнение цикла завершается.
В конце каждой итерации expr3 оценивается (выполняется).