КУРС PHP/MYSQL For и while

0

День добрый.

При решении задачки в курсе 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? и в чем разница.

решение задачи выполнено и в том и в другом случае, а решение разное.

PHP

4 ответов

3

Применение циклов зависит от задачи, грубый пример while:

Предположим, программа делает какое-то действие в цикле, пока значение переменной true. Как только true сменяется на false, цикл останавливается.

Цикл for больше для других задач, например когда программа "бежит" по массиву и когда доходит до конца массива, цикл прекращается. 

Есть еще цикл do, он отличается от всех циклов тем, что действие в теле цикла выполнится хотя бы один раз. По этому какие циклы использовать зависит от задачи.

2

Для вывода из массива можно любой цикл использовать, но я заметил, что в основном для массивов используют foreach. Что касается самого задания, просят использовать цикл while, чтобы скорее всего проверить, понял студент синтаксис цикла while или нет. 

1

В данной задачке :

<?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 и результат будет один и тот же, так ? 

1

Спасибо, разъяснили.. не понимающим-у.

Sign up or Log in to write an answer