Задача №13. Создайте функцию, которая принимает на вход массив случайных чисел из диапазона [5..12] и выведете на экран строку

Задача из этого списка.

<?php
/*Создайте функцию, которая принимает на вход массив случайных чисел из диапазона [5..12]. Обходит этот массив и делает для каждого элемента следующее (пусть она оказывает побочный эффект прямо в своём теле):
Если это число равно 5 -- то выведете на экран строку "пять", если 6 -- то строку "шесть", если 7 то число "7", иначе -- строку "какое-то другое число".
Используйте для решения задачи оператор switch (link is external) */

function createRandomArray($amountNums) { 
	for($a = 1; $a <= $amountNums; $a++) {
		$randomArray[] = rand(5, 12);
	}
	return $randomArray;
}
function outputLinesFromArray($randomArray) {
	foreach($randomArray as $elem) {
		switch($elem) {
			case '5':
				echo "Пять", '<br>';
			break;
			case '6':
				echo "Шесть", '<br>';
			break;
			case '7':
				echo "Семь", '<br>';
			break;
			default :
				echo "Какое-то другое число", '<br>';
			break;
		}
	}
}
$randomArray = createRandomArray(5); //создаём массив с нужным N-элементов
outputLinesFromArray($randomArray);

Key Words for FKN + antitotal forum (CS VSU):

melisa's picture

не объявлен массив $randomArray. Если передать в createRandomArray() ноль - будет ошибка.

melisa's picture

  1. break пишется на уровень глубже case. См. стандарт PSR-2, п.11.
  2. После функций и управляющих структур следует делать пропуск строки.

    Перед return тоже.

    Вообще, ознакомьтесь с PSR-стандартом, это важно для работы в любой компании.

Sver4ok's picture

<?php
/*Создайте функцию, которая принимает на вход массив случайных чисел из диапазона [5..12]. Обходит этот массив и делает для каждого элемента следующее (пусть она оказывает побочный эффект прямо в своём теле):
Если это число равно 5 -- то выведете на экран строку "пять", если 6 -- то строку "шесть", если 7 то число "7", иначе -- строку "какое-то другое число".
Используйте для решения задачи оператор switch (link is external) */

function createRandomArray($amountNums) { 
	$randomArray = [];
	for ($a = 1; $a <= $amountNums; $a++) {
		$randomArray[] = rand(5, 12);
	}
	return $randomArray;
}
function outputLinesFromArray($array) {
	if (!empty ($array)) {
		foreach ($array as $elem) {
			switch ($elem) {
				case '5':
					echo "Пять", '<br>';
					break;
				case '6':
					echo "Шесть", '<br>';
					break;
				case '7':
					echo "Семь", '<br>';
					break;
				default :
					echo "Какое-то другое число", '<br>';
					break;
			}
		}
	}
}
$array = createRandomArray(10); //создаём массив с нужным N-элементов
outputLinesFromArray($array);
melisa's picture

читайте внимательнее:

После функций и управляющих структур следует делать пропуск строки.
Перед return тоже.

Sver4ok's picture

После блока функции над строку пустую вставлять тип?
А с return что сделать? зачем пустая строка перед ним, он же в блоке функции? в пср ничего не написано про него прост.

melisa's picture

Действительно, про return не написано, но перед ним лучше тоже делать пропуск - так больше внимание обращается на то, что возвращает функция. Также можно делать пропуски после функций и после управляющих структур (условий и циклов), - это повышает читаемость кода, нечего скупердяйствовать ;)

function createRandomArray($amountNums)
{ 
    $randomArray = [];

    for ($a = 1; $a <= $amountNums; $a++) { 
        $randomArray[] = rand(5, 12);
    }

    return $randomArray;
}

function outputLinesFromArray($array)
{
    if (!empty ($array)) {
        foreach ($array as $elem) {
            switch ($elem) {
                case '5':
                    echo "Пять", '<br>';
                    break;
                case '6':
                    echo "Шесть", '<br>';
                    break;
                case '7':
                    echo "Семь", '<br>';
                    break;
                default :
                    echo "Какое-то другое число", '<br>';
                    break;
            }
        }
    }
}

outputLinesFromArray(createRandomArray(10));

Также можно делать пропуск строки перед циклами и условиями, только если они не сразу после {

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

melisa's picture

принято