КУРС PHP/MYSQL For и while
День добрый.
При решении задачки в курсе PHP/MYSQ, задание 27.
У меня возникло не понимание..
В задании говориться нужно: Выведите содержимое массива $arr с помощью цикла WHILE. Вывод сделайте через оператор echo с использованием тега <br> для переноса на следующую строку.
решение задачки написано:
while($i < count($arr)) {
echo $arr[$i]."<br>";
$i++;
}
я написал :
for ($i = 0; $i < count($arr); $i++) {
echo $arr[$i]."<br>";
}
Объясните пожалуйста, в чем разница? ведь вывод один и тот же! и поясните пожалуйста как понять когда применять while а когда for? и в чем разница.
решение задачи выполнено и в том и в другом случае, а решение разное.
4 ответов
Применение циклов зависит от задачи, грубый пример while:
Предположим, программа делает какое-то действие в цикле, пока значение переменной true. Как только true сменяется на false, цикл останавливается.
Цикл for больше для других задач, например когда программа "бежит" по массиву и когда доходит до конца массива, цикл прекращается.
Есть еще цикл do, он отличается от всех циклов тем, что действие в теле цикла выполнится хотя бы один раз. По этому какие циклы использовать зависит от задачи.
Для вывода из массива можно любой цикл использовать, но я заметил, что в основном для массивов используют foreach. Что касается самого задания, просят использовать цикл while, чтобы скорее всего проверить, понял студент синтаксис цикла while или нет.
В данной задачке :
<?php
$arr[0] = "продукты";
$arr[1] = "бутылка с водой";
for($i = 0; $i < count($arr); $i++) {
echo $arr[$i]."<br>";
}
/* Напишите код цикла после $i = 0; */
$i = 0;
?>
не принципиально в данной задаче какой цикл использовать? можно использовать все три, while, for, do. т.к. у нас в задаче просто нужно вывести что находиться в массиве ( во всей камере хранения)
В случае while у нас нечего не может смениться на false поэтому он всегда будет выводить весь массив.
В случае for У нас делает круг( тоесть один раз проходит по нашему коду) и останавливается, что собственно нам и нужно, просто вывести список в массиве.
В случае do у нас он используется хотябы 1 раз, что собственно нам и нужно один раз вывести весь список в массиве.
Надеюсь понятно?.. просто пытаюсь понять в данном конкретном примере можно использовать while, for, do и результат будет один и тот же, так ?
Спасибо, разъяснили.. не понимающим-у.