Marlin онлайн-платформа

Циклы

Из видео понятно, что цикл - это конструкция, которая отвечает за многократное повторение одного и того же действия. В программировании это избавляет разработчика от необходимости писать большое количество повторяющихся блоков кода. 

Обычно у цикла есть оператор, условие выполнения и тело цикла. Оператор - это ключевое слово, которое говорит компьютеру, что ему необходимо обработать цикл, например foreach или while; условие выполнения - обстоятельства, при которых цикл должен выполняться; тело цикла - сами действия, которые необходимо повторять. При работе с циклами нужно быть осторожным: при отсутствии условия выполнения цикл становится бесконечным, а в процессе выполнения такой "бесконечной" программы компьютер попросту виснет. 


В дополнение к видео-уроку разберём существующие виды циклов: 

Начнём с foreach, о котором шла речь в видео. Этот цикл предназначен именно для работы с массивами, и в этом его главное преимущество - нам не нужно опасаться возникновения бесконечного цикла, поскольку foreach останавливается, совершив указанные операции с каждым элементом переданного ему массива. 

Пример:

$colors = ['red', 'blue', 'yellow', 'green'];

foreach($colors as $color) {
	echo($color);
}

 

Кратко рассмотрим цикл while: ему необходимо условие. Принцип простой - пока условие верно, выполняется код из тела цикла. Такой цикл не выполнится ни одного раза, если не выполняется заданное условие.

Пример:

$num = 3;

while($num < 30) {
	$num = $num + 6;
	echo($num);
}


А вот следующий цикл do while выполняется как минимум один раз, даже если условие не выполнено, потому что условие в таком цикле проверяется после выполнения кода внутри тела. 

Пример: 

$num = 15;

do {
	$num - 2;
	echo($num);
} while ($num > 20);


И напоследок поговорим о цикле for. Он сложнее, чем два предыдущих, так что разберём его сразу на примере: 

for($i = 0; $i < 10; $i = $i + 1){
	echo($i);
}
  1.  $i = 0 - операция, которая выполнится один разперед началом цикла;
  2. $i < 10 - это условие, которое проверяется перед каждой итерацией цикла;
  3. $i = $i + 1 - операция, которая выполняется каждый раз после выполнение тела цикла, но перед новой проверкой условия, по-другому эту операцию называют шагом цикла for.

Итак, для ознакомления мы разобрали все типы циклов в языке PHP, однако особое внимание уделите циклу foreach, потому что именно с ним мы будем чаще всего работать в наших проектах.

 

ПОЯСНЕНИЯ И ПОЛЕЗНАЯ ИНФОРМАЦИЯ

  • Обычно у цикла есть оператор, условие выполнения и тело цикла. Оператор - это ключевое слово, которое говорит компьютеру, что ему необходимо обработать цикл, например foreach или while; условие выполнения - обстоятельства, при которых цикл должен выполняться; тело цикла - сами действия, которые необходимо повторять. 

 

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

 

  • Циклов существует несколько видов. О foreach вы уже знаете - этот цикл предназначен именно для работы с массивами, и в этом его главное преимущество - нам не нужно опасаться возникновения бесконечного цикла, поскольку foreach останавливается, совершив указанные операции с каждым элементом переданного ему массива. Кстати, foreach может работать также и с ассоциативным массивом:
$array = ['key' => 'value', 'key2' => 'value2'];

foreach($array as $key => $value){
    echo($key);
    echo($value);
}

 

  • Следующим будет цикл while: ему необходимо условие. Принцип простой - пока условие верно, выполняется код из тела цикла. Такой цикл не выполнится ни одного раза, если не выполняется заданное условие.
$num = 3; 
while($num < 30) {     $num = $num + 6; echo($num); }

 

  • А вот do while выполняется как минимум один раз, даже если условие не выполнено, потому что условие в таком цикле проверяется после выполнения кода внутри тела. 

$num = 15;

do {
    $num - 2;
    echo($num);
} while ($num > 20);

 

  • Цикл for сложнее, чем два предыдущих, так что разберём его сразу на примере: 
for($i = 0; $i < 10; $i = $i + 1) {
    echo($i); 
} 

 

$i = 0 - операция, которая выполнится один раз перед началом цикла

$i < 10 - это условие, которое проверяется перед каждой итерацией цикла

$i = $i + 1 - операция, которая выполняется каждый раз после выполнение тела цикла, но перед новой проверкой условия, по-другому эту операцию называют шагом цикла for.

 

Задание

Решите задачи:

  1.  Дан массив с элементами 1, 2, 3, 4, 5. С помощью цикла foreach найдите сумму элементов этого массива. Запишите ее в переменную $result.
  2.  Дан массив $arr с ключами 'Коля', 'Вася', 'Петя' и с элементами '200', '300', '400'. С помощью цикла foreach выведите на экран столбец строк такого формата: 'Коля - зарплата 200 долларов.'.
  3.  Дан массив $arr. С помощью цикла foreach запишите английские названия в массив $en, а русские - в массив $ru.
  4.  Дано число $num = 1000. Делите его на 2 столько раз, пока результат деления не станет меньше 50. Какое число получится? Посчитайте количество итераций, необходимых для этого (итерация - это проход цикла). Решите задачу сначала через цикл while, а потом через цикл for.

Дополнительная секция

Вопрос-ответ Обсуждение