while, do while php
Wab IT
Циклы while и do while в php
Цикл while — пока, условие верно, делаем.
Цикл do while — делаем пока верно.
Разница в этих двух циклах.
while — пока условие истина, делаем, а если ложь? Ничего не выводим.
do while — делаем пока истина, а если ложь? Выводим то, что делали до того как получили ложь.
Запишем переменную и в цикле while создадим условие. Начнем с самых простых примеров.
$num = 1; // создали переменную
while ($num < 10){ // условие пока переменная меньше 10
echo $num++; } // увеличиваем на один и выводим.
Условие в цикле while выполняется пока не будет ложь. То есть, если переменную просто вывести и не увеличивать, то истина у нас будет постоянной, и вывод 1 будет в цикле до бесконечности. По этой причине цикл вайл всегда должен дойти до folse, либо останавливаться оператором break; , а если мы в переменной сразу запишем 11, то у нас будет folse и ничего не отобразиться.
Для того чтобы в случае ложного условия отобразить переменную с значением 11, для этого и существует цикл do while — делай пока. То есть, сначала делай, а потом уже сверяй пока не получишь ложь.
Записывается этот цикл немного иначе.
do { // делай
echo $num++; // прибавляй пока } while($num < 10); пока переменная меньше 10 в конце знак ;
Предположим нам нужно при выборе разного количества товара показывать разную информацию. Рабочий пример мы будет делать в видео уроке, здесь для примера.
Создадим выпадающий список циклом while
$num = 1; // записали переменную
echo '<select>'; // открыли тег раскрывающегося списка
while ($num < 10) { // создали условие
echo "<option value=' $num '> $num </option>"; // поместили переменную в тег отправки данных и вывели в выпадающем списке.
$num++; // увеличиваем на 1, получаем 9 пунктов.
} echo '</select>'; // закрыли список
Так здесь все просто, список есть, но если переменная будет 11, то мы ничего не увидим. Теперь давайте запишем чтобы и при условии ложь, отобразить данные из переменной, естественно циклом do while и с условием if.
Пример
do { // делай
if ($num > 10) { если переменная больше
echo " Вы превысили допустимое количество $num"; // вывести
break; // используем оператор брейк иначе конца этой записи не будет.
} else { // иначе если количество меньше 10
echo ' Выберете товар'; // вывести
break; } } while (0); // и в конце обязательное условие пока.
Так у нас при количестве в переменной больше 10, будет выводиться один текст, а при ровно или меньше другой.