break, continue, goto в PHP

Wab IT

break, continue, goto в PHP

Операторы break, continue и goto в PHP

Операторы:
break — прервать,
continue — продолжить
goto — перейти 
применяются в циклах for, foreach, while, do-while или switch.

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

Возьмем пример из прошлого урока. Мы создали массив.
Если нужно вывести массив только до 3, то записываем условие с оператором break.

$nomera = [1, 2, 3, 4, 5 , 6, 7]; 
foreach ($nomera as $el){ 
if ($el ==3) { // если в записном в переменную el массиве есть 3
 
break; // то прерываем цикл 
}   echo $el. ', '; // и выводит 1, 2, до то того как прервали.
 
  }

Уберите брейк и у нас выведется весь массив. Понятно оператор break остановит цикл, а как поведет себя в этом случае continue? Меняем break на continue 

if ($el ==3) { 
continue; // поменяли break на continue
 
}   echo  $el; } // и получили 1, 2, 4, 5, 6, 7, весь массив только без 3.

 То есть, если в массиве условие находит 3, то оператор continue дает указание продолжить, другими словами пропустить эту часть кода.

 И если мы укажем оператор goto, то перепрыгнем через условие if.

goto result; // указали оператору гото метку ресулт
if ($el == 3) {  
break;  
}
result: // указали метку гото куда перейти 
echo $el . ', '; } // и получили 1, 2, 3, 4, 5, 6, 7,  

Получили весь массив так как, оператором goto перепрыгнули в заданное меткой место, то есть код с условием пропустили.

Операторы break и continue могут принимать необязательный числовой аргумент, который сообщает break, выполнение какого количества вложенных структур необходимо завершить, а continue в скольких структурах проигнорировать вывод элемента. Значением числового аргумента по умолчанию является 1, максимальное 2. Пару примеров для визуального восприятия.

Пример с break.
Для детального отображения работы break с числовым аргументом, добавим в наш код оператор switch. Я отображу код полностью, вы можете дописать только свитч и break. 

Пример 1.

$nomera = [1, 2, 3, 4, 5, 6, 7];
foreach ($nomera as $el) {
switch ($el) {
case 3:
echo ' (элемент 3), ';
break 2; // остановили с числовым аргументом 2
case 4: // это сравнение и ниже не выводится так, как 2 останавливает выполнение структуры этого кода и следующего за ним.
echo ' (элемент 4), ';
case 5:
echo ' (элемент 5), ';
}
goto result; // а вот и следующий оператор который остановил свою работу из за оператора break 2
if ($el == 3) { 
break;
}
result:
echo $el . ', <br> '; }

Видим что оператор брейк с числовым аргументом 2, завершил весь код оператора свитч ниже case 3 и остановил работу оператора goto.

Добавим для примера оператор continue с числовым аргументом 2. Добавим его чтобы пропустить элемент в массиве с числом 3. 

switch ($el) {
case 3:
continue 2; // добавили продолжить без элемента 3, в 2 вложенных структурах switch и if.&nbsp;
 
echo ' (элемент 3), ';
break 2;  

И видим что continue продолжил работу без элемента 3 в массиве, как в цикле switch, так и в if, а так как break2 был записан в условии case 3, выполнение которого пропускает continue, то и  оператор break2 тоже игнорируется, тобишь не срабатывает. 

Домашнее задание

Перепишите оператор break в Пример 1 так, чтобы у вас экране вывелся массив в таком виде. 

1,
2,
(элемент 3), (элемент 4), (элемент 5), 

Продолжить просмотр за:
100 Лит
10:40
500
Lit
RSS
Нет комментариев. Ваш будет первым!

Похожий контент

Оператор switch case так же как и IF является условным. С оператором switch&nb...
Цикл for для итерации в phpЦикл for для повторяющегося условия в php, есл...
Циклы while и do while в phpЦикл while - пока, условие верно, делаем. Цикл&nbs...
Вы уже слышали о номерах ИНН, паспортах с чипами, банковских картах и даже чипах ко...