Перейти к публикации

Рекомендованные сообщения

Приветствую.

Потихоньку изучаю php и хочется выяснить чисто для себя.

Делаю таблицу умножения и дабы потом не возникало вопросов, решил сделать её через 2 цикла:

FOR

echo "<table border=\"1\">";

for ($tr=1;$tr<=$rows;$tr++) {

echo "<tr>";

for ($td=1;$td<=$cols;$td++) {

echo "<td>".$tr*$td."</td>";

}

echo "</tr>";

}


echo "</table>";
WHILE
$td = 1;

$tr = 1;

echo "<table border=\"1\">";

while ($tr<=$rows) {

echo "<tr>";

while ($td<=$cols) {

echo "<td>".$tr*$td."</td>";

$td++;

}

echo "</tr>";

$tr++;

}


echo "</table>";

Второй цикл (вложенный) в while отрабатывает один раз, в то время, как вложенный цикл (второй) в FOR срабатывает до тех пор, пока нас не выкинет из цикла первого уровня. Так и должно быть, или же есть где-то ошибка?

P.S. Код через WHILE должен работать точно так же, как и через FOR. В этом и заключается вопрос, собственно - как это сделать и почему мой вариант не работает так, как нужно. :)
Изменено пользователем ibred
Ссылка на сообщение
Поделиться на других сайтах

$td = 1;

Теперь подумайте где нужно это делать...

Сразу же после вложенного цикла :)

Но не могли бы Вы ответить, почему в while цикл срабатывает именно так? Мне казалось, что это совершенно идентичные конструкции.

Ссылка на сообщение
Поделиться на других сайтах

http://php.su/learnphp/cs/?cycles

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...