Пример цикла do while php

Цикл do while в PHP

Цикл do while очень похож на цикл while , с тем отличием, что условное выражения проверяется в конце итерации, а не в начале.

Главное отличие цикла do while от обычного цикла while в том, что первая итерация цикла do while гарантированно выполнится (истинность выражения проверяется в конце итерации). Из предыдущего урока мы заем, что первая итерация может вообще не выполниться в обычном цикле while (истинность выражения которого проверяется в начале выполнения каждой итерации, и если изначально имеет значение FALSE , то выполнение цикла будет прервано сразу).

Синтаксис цикла do while

В приведенном ниже примере для переменной $num сначала устанавливается значение 1 ($num = 1). Затем цикл do while выполнит первую итерацию, а после этого увеличит переменную $num на 1. Затем проверяется условие ($num меньше или равно 5?) и цикл будет продолжать выполняться до тех пор, пока $num станет меньше или равно 5:

Пример

 $num = 1;

do echo "Итерация номер: $num
";

$num++;
> while ($num ?>

Результат выполнения кода:

Итерация номер: 1 Итерация номер: 2 Итерация номер: 3 Итерация номер: 4 Итерация номер: 5 Итерация номер: 6 Итерация номер: 7

В следующем примере для переменной $num устанавливается значение 7 , затем выполняется цикл, а только потом проверяется условие цикла. В результате итерация выполнится только один раз:

Читайте также:  Php week number in year

Пример

 $num = 7;

do echo "Номер: $num
";

$num++;
> while ($num ?>

Результат выполнения кода:

Источник

Пример цикла do while php

Цикл do-while очень похож на цикл while , с тем отличием, что истинность выражения проверяется в конце итерации, а не в начале. Главное отличие от обычного цикла while в том, что первая итерация цикла do-while гарантированно выполнится (истинность выражения проверяется в конце итерации), тогда как она может не выполниться в обычном цикле while (истинность выражения которого проверяется в начале выполнения каждой итерации, и если изначально имеет значение false , то выполнение цикла будет прервано сразу).

Есть только один вариант синтаксиса цикла do-while :

В примере цикл будет выполнен ровно один раз, так как после первой итерации, когда проверяется истинность выражения, она будет вычислена как false ( $i не больше 0) и выполнение цикла прекратится.

Опытные пользователи С могут быть знакомы с другим использованием цикла do-while , которое позволяет остановить выполнение хода программы в середине блока, для этого нужно обернуть нужный блок кода вызовом do-while (0) и использовать break . Следующий фрагмент кода демонстрирует этот подход:

do if ( $i < 5 ) echo "i ещё недостаточно велико" ;
break;
>
$i *= $factor ;
if ( $i < $minimum_limit ) break;
>
echo «значение i уже подходит» ;

Можно использовать оператор goto вместо подобного «хака».

User Contributed Notes 6 notes

There is one major difference you should be aware of when using the do—while loop vs. using a simple while loop: And that is when the check condition is made.

In a do—while loop, the test condition evaluation is at the end of the loop. This means that the code inside of the loop will iterate once through before the condition is ever evaluated. This is ideal for tasks that need to execute once before a test is made to continue, such as test that is dependant upon the results of the loop.

Conversely, a plain while loop evaluates the test condition at the begining of the loop before any execution in the loop block is ever made. If for some reason your test condition evaluates to false at the very start of the loop, none of the code inside your loop will be executed.

The example below first sets a variable $x to 1 ($x = 1). Then, the do while loop will write some output, and then increment the variable $x with 1. Then the condition is checked (is $x less than, or equal to 5?), and the loop will continue to run as long as $x is less than, or equal to 5:

Do-while loops can also be used inside other loops, for example:

// generating an array with random even numbers between 1 and 1000

$numbers = array();
$array_size = 10 ;

// for loop runs as long as 2nd condition evaluates to true
for ( $i = 0 ; $i < $array_size ; $i ++)

// always executes (as long as the for-loop runs)
do <
$random = rand ( 1 , 1000 );

// if the random number is even (condition below is false), the do-while-loop execution ends
// if it’s uneven (condition below is true), the loop continues by generating a new random number
> while (( $random % 2 ) == 1 );

// even random number is written to array and for-loop continues iteration until original condition is met
$numbers [] = $random ;
>

// sorting array by alphabet

echo ‘

' ; 
print_r ( $numbers );
echo '

‘ ;
?>

I’m guilty of writing constructs without curly braces sometimes. writing the do—while seemed a bit odd without the curly braces (< and >), but just so everyone is aware of how this is written with a do—while.

a normal while:
while ( $isValid ) $isValid = doSomething ( $input );
?>

a do—while:
do $isValid = doSomething ( $input );
while ( $isValid );
?>

Also, a practical example of when to use a do—while when a simple while just won’t do (lol). copying multiple 2nd level nodes from one document to another using the DOM XML extension

# open up/create the documents and grab the root element
$fileDoc = domxml_open_file ( ‘example.xml’ ); // existing xml we want to copy
$fileRoot = $fileDoc -> document_element ();
$newDoc = domxml_new_doc ( ‘1.0’ ); // new document we want to copy to
$newRoot = $newDoc -> create_element ( ‘rootnode’ );
$newRoot = $newDoc -> append_child ( $newRoot ); // this is the node we want to copy to

# loop through nodes and clone (using deep)
$child = $fileRoot -> first_child (); // first_child must be called once and can only be called once
do $newRoot -> append_child ( $child -> clone_node ( true )); // do first, so that the result from first_child is appended
while ( $child = $child -> next_sibling () ); // we have to use next_sibling for everything after first_child
?>

If you put multiple conditions in the while check, a do-while loop checks these conditions in order and runs again once it encounters a condition that returns true. This can be helpful to know when troubleshooting why a do-while loop isn’t finishing. An (illustrative-only) example:

$numberOne = 0 ;
do echo $numberOne ;
$numberOne ++;
> while( $numberOne < 5 || incrementNumberTwo () );
function incrementNumberTwo () echo «function incrementNumberTwo called» ;
return false ;
>
// outputs «01234function incrementNumberTwo called»
?>

Источник

PHP: Цикл while (do while)

Чтобы приступить к использованию циклов, нужно узнать, что они собой представляют, на что способны и зачем нужны в сценариях. Цикл — это блок кода, позволяющий повторять выполнение некоторых действий (инструкций) определенное количество раз. Каждое отдельное исполнение (одно или более повторений) последовательности инструкций в цикле называется — итерация .

Каждый цикл состоит из двух основных частей. Первая определяет, когда должно быть остановлено исполнение цикла. Вторая — собственно фрагмент программного кода, выполняющий необходимые действия, который может состоять из одной единственной инструкции или из нескольких инструкций, заключенных в фигурные скобки.

Программный код цикла исполняется до тех пор, пока условное выражение цикла возвращает значение TRUE . Чтобы избежать бесконечного цикла, который будет крутиться вечно, код тела цикла должен заставить условное выражение в определенный момент вернуть значение FALSE . Когда это произойдет, работа цикла прекратится, и исполнение продолжится со строки кода, расположенной непосредственно после цикла.

Цикл while

Цикл while является простейшим видом цикла в PHP. Его синтаксис:

синтаксис цикла while в PHP

Ниже приводится пример цикла while , тело которого исполняется 10 раз:

Перед началом цикла значение переменной $num устанавливается равным 1 (значение может быть любым). Это называется инициализацией переменной-счетчика. Каждый раз, когда исполняется тело цикла, с помощью инкремента $num++ значение переменной $num увеличивается на единицу. Значение выражения ( $num

Большинство циклов имеют переменные-счетчики, аналогичные $num . Чаще всего в качестве счетчиков цикла выступают переменные с именами i, j и k , хотя для того чтобы сделать программный код более понятным, следует давать счетчикам более наглядные имена.

Цикл do while

Цикл do while очень похож на цикл while , с тем отличием, что условное выражения проверяется в конце итерации, а не в начале. Синтаксис этого цикла:

синтаксис цикла do while в PHP

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

Попробуем выполнить те же самые действия, что и в предыдущем примере:

Копирование материалов с данного сайта возможно только с разрешения администрации сайта
и при указании прямой активной ссылки на источник.
2011 – 2023 © puzzleweb.ru

Источник

do-while

Цикл do-while очень похож на цикл while, с тем отличием, что истинность выражения проверяется в конце итерации, а не в начале. Главное отличие от обычного цикла while в том, что первая итерация цикла do-while гарантированно выполнится (истинность выражения проверяется в конце итерации), тогда как она может не выполниться в обычном цикле while (истинность выражения которого проверяется в начале выполнения каждой итерации, и если изначально имеет значение FALSE , то выполнение цикла будет прервано сразу).

Есть только один вариант синтаксиса цикла do-while:

В примере цикл будет выполнен ровно один раз, так как после первой итерации, когда проверяется истинность выражения, она будет вычислена как FALSE ( $i не больше 0) и выполнение цикла прекратится.

Опытные пользователи С могут быть знакомы с другим использованием цикла do-while, которое позволяет остановить выполнение хода программы в середине блока, для этого нужно обернуть нужный блок кода вызовом do-while (0) и использовать break. Следующий фрагмент кода демонстрирует этот подход:

do if ( $i < 5 ) echo "i еще недостаточно велико" ;
break;
>
$i *= $factor ;
if ( $i < $minimum_limit ) break;
>
echo «значение i уже подходит» ;

Не беспокойтесь, если вы не понимаете это сразу или вообще. Вы можете писать скрипты и даже мощные программы без использования этой ‘возможности’. Начиная с версии PHP 5.3.0, стало возможным использовать оператор goto вместо подобного «хака».

Источник

Использование циклов в PHP

PHP имеет четыре вида циклов и операторы управления ими, рассмотрим поподробнее.

Foreach – перебор массива

Предназначен для перебора элементов массива.

Foreach – перебор массива

$array = array( 1 => 'Значение 1', 2 => 'Значение 2', 3 => 'Значение 3', 4 => 'Значение 4', ); // Вывод ключей foreach ($array as $key => $val) < echo $key . '
'; > // Вывод значений foreach ($array as $key => $val) < echo $val . '
'; >

Результат:

1 2 3 4 Значение 1 Значение 2 Значение 3 Значение 4

Альтернативный синтаксис foreach

For – цикл с счетчиком

Цикл работает пока выполняется заданное условие. Обычно применяется в качестве счетчика.

For – цикл с счетчиком

// Счетчик от 0 до 5 for ($n = 0; $n // Счетчик от 5 до 0 for ($n = 5; $n >= 0; $n--)

Результат:

Альтернативный синтаксис

$array = array( 'Значение 1', 'Значение 2', 'Значение 3', 'Значение 4', ); for ($n = 0; $n < count($array); $n++) < echo $array[$n] . '
'; >

Результат:

Значение 1 Значение 2 Значение 3 Значение 4

Альтернативный синтаксис for

While – цикл с предусловием

Т.е. если перед началом итерации условие выполняется, то цикл продолжает свою работу.

While – цикл с предусловием

Результат:

Альтернативный синтаксис while

Do-while – цикл с постусловием

В отличии от while этот цикл проверяет выполнения условия после каждой итерации. Do-while не имеет альтернативного синтаксиса.

Do-while – цикл с постусловием

Результат:

Управление циклами

Break

Вызов break или break 1 в цикле останавливает его.

Для вложенных циклов используется break 2 и т.д.

Continue

Используется для пропуска итерации.

Результат:

Для вложенных циклов по аналогии с break 2 , break 3 – continue 2 , continue 3 .

Источник

Оцените статью