Учебные задачи PHP. Задача 13
Primary tabs
Список учебных задач PHP здесь
Условие: Создайте функцию, которая принимает на вход массив случайных чисел из диапазона [5..12]. Обходит этот массив и делает для каждого элемента следующее (пусть она оказывает побочный эффект прямо в своём теле): Если это число равно 5 -- то выведете на экран строку "пять", если 6 -- то строку "шесть", если 7 то число "7", иначе -- строку "какое-то другое число". Используйте для решения задачи оператор switch.
<?php $n = 9; for ($i = 0; $i < $n; $i++) { $arr[$i] = rand(5, 12); // Заполняем массив рандомными значениями } function idNumber($arr) { foreach ($arr as $elem) { // Перебираем значения в рандомном массиве switch ($elem) { // Определяем, что за число case "5": echo "Пять", "<br>"; break; case "6": echo "Шесть", "<br>"; break; case "7": echo "Семь", "<br>"; break; default: echo "Другое число", "<br>"; break; } } } idNumber($arr); ?>
- Log in to post comments
- 4690 reads
melisa
Wed, 02/20/2019 - 16:54
Permalink
замечания
В данном случае использование переменной $n не оправдано - это величина постоянная.
Можно просто $i
значение, а печаталось оно уже после вызова функции. Такая же проблема, как здесь.
Внимательно читайте условие задачи. Что должно быть выведено, если значение = 7? И что,
если значение не 5, 6 или 7?
break в секции default не обязателен, т.к. после default программа и так заканчивает
выполнение switch.
Это не вызовет ошибки, просто Вы должны понимать, для чего нужен break.
rvsokolov
Wed, 02/20/2019 - 17:27
Permalink
Исправление замечаний
2. У меня были проблемы с return, но вроде я разобрался
3. Да, действительно, невнимательно прочитал условие — исправился
4. Я запомнил про необязательность break в секции default
melisa
Wed, 02/20/2019 - 17:33
Permalink
У меня были проблемы с return, но вроде я разобрался
Прошу прощения, здесь у Вас всё было правильно. Так даже в условии написано, что должен оказываться побочный эффект.
И что же Вы меня не поправляете??? )) Опять невнимательность)
Практического смысла возвращать значение последнего жлемента массива нет. А всё, что можно удалить - нужно удалить. Правило такое.
Если Вы видите что-то нецелесообразное, у Вас автоматически должен возникать вопрос: "Я чего-то не понимаю? Или требования неадекватные?".
Так вот, возвращать значение можно было бы, если бы в функцию передавалось одно значение и вывести нужно было бы только 1 результат. А т.к. у нас массив и результатов много, для облегчения задачи, условием предложено печатать результаты прямо в теле функции.
melisa
Wed, 02/20/2019 - 17:37
Permalink
принято
принято