Циклы: прерывание циклов в PHP. Инструкции break/continue

Программирование

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

Сам по себе foreach представляет собой лучшего помощника программиста веб-сайтов. Он встречается практически во всех кодах сайта и выполняет важную задачу – обход массив по элементам. Несмотря на то, что его синтаксис достаточно простой, понадобится время, чтобы вникнуть. Предлагаем начать с элементарного примера:

<?php
$a = array(‘один’, ‘два’, ‘три’);
foreach( $a as $b ){
echo $b;
echo'<br>’;
}
?>

Прописав такой код, на экране появится:

один
два
три

Рассмотрим все пошагово. В скобках foreach прописано $a as $b, что задает следующую команду: «бери все элементы массива $a по порядку и помещай их значение в массив $b. В результате программа берет первый элемент массива $a, а затем задает данное значение переменной $b.

В теле цикла выводится значение «echo $b;». Когда все команды из циклов будут выполнены, происходит вторая итерация: из массива $a берется второй элемент со значением ‘два’. Программа выполняет точно такое же действие. Все до тех пор, пока элементов в массиве не останется.

Приведем более сложный пример. Представьте, что у массива есть ключи и их тоже необходимо передавать. Для наглядности сделаем ключи в виде текста:

<?php
$a = array(
‘one’ =>’один’,
‘two’ =>’два’,
‘three’ =>’три’
);
foreach( $a as $b => $с ){
echo $b;
echo’ = ‘;
echo $c;
echo'<br>’;
}
?>

Как следствие, на экран выведется следующее содержание:

one = один
two = два
three = три

Как вы заметили, цикл отличается содержанием в скобках $a as $b => $с. Данное выражение означает следующую команду: «бери все элементы массива $a по порядку и помещай их в значение $c, а ключи элементов помещай в переменную $b.

Важно! Если вы измените значение переменных $с или $b, то значение переменной $a останется неизменным. Если нужно изменить значение элемента массива, используйте внутри цикла foreach конструкцию $a[$b] = ‘ваше_значение’. В таком случае, в массиве $a, в элементе с ключом $b, значение изменится на ‘ваше_значение’.

Прерывание цикла –break

Нередко случается, когда нужно прервать цикл, то есть выйти из него не продолжая. Тут на помощь приходит инструкция break. Приведем пример:

<?php
$a = array(‘один’, ‘два’, ‘три’);
foreach( $a as $b ){
if($b == ‘три’) break;
echo $b;
echo'<br>’;
}
?>

Такой код выведет на экран следующее содержимое:

один
два

Почему нет слова ‘три’? Обратите внимание на break в коде, который говорит программе о прерывании, в результате чего цикл завершается.

Следующая итерация цикла (continue)

Может быть и другая задача – не завершать цикл, а перейти к следующему элементу. С этой задачей поможет справится continue.

Пример:

<?php
$a = array(‘один’, ‘два’, ‘три’);
foreach( $a as $b ){
if($b == ‘два’) continue;
echo $b;
echo'<br>’;
}
?>

Такой код выведет на экран следующее содержимое:

один
три

Инструкция continue сработала на элементе со значением ‘два’, поэтому все дальнейшие команды не выполняются, а цикл начинается повторно, использовав следующий элемент массива — $a.

Внимание! Обе инструкции (continue и break) доступны не только для циклов foreach. Они успешно работают в циклах while и for. Эти инструкции оказывают воздействие исключительно на родительский цикл, где находятся. Поэтому если несколько циклов вложено один в другой, а инструкция стоит внутри второго, то она не воздействует на первый цикл.

Цикл goto

goto – оператор безусловного перехода, который применяется для перехода в другой участок кода. При этом используется метка, после которой ставится двоеточие. После оператора gotoдля перехода ставится желаемая метка (простой идентификатор).

Пример:

<?php

gotofoo; // указываемжелаемую метку
echo’hello’;

foo: // указываемместокуданужно перейти
echo’world’;

?>

Цикл while

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

Пример:

while(condition){
// код
// также называемый «телом цикла»
}

Код из тела цикла выполняется, пока условие condition истинно.

К примеру, цикл ниже выводит i, пока i < 3:

let i =0;
while(i <3){// выводит 0, затем 1, затем 2
alert( i );
i++;
}

Если бы строки i++ не было, то цикл повторялся бы вечно. Хотя браузер не допустит этого: пользователь получит возможность прекратить эту команду, а JavaScript на стороне сервера убьет этот процесс.

А вы уже использовали инструкции break/continue, goto? Полезной ли оказалась наша статья? Напишите в комментариях.

Оцените статью
Образовательный портал WELCOME4U.RU
Добавить комментарий

Adblock
detector