Учебные задачи PHP. Задача 2
Primary tabs
Список учебных задач PHP здесь
Условие: Вывести на экран сумму N случайных чисел.
Сначала я решил таким образом:
<?php for ($value = 0; $value < 1; $value++) { $value1 = rand(-21, 35); $sum = $value1 + rand(-21, 35); echo "Сумма рандомных значений: ", $sum, "<br>"; } ?>
Это работает, но здесь складываются только 2 рандомных значения. Можно конечно прописать таким образом с десяток переменных, дать им рандомные значения и сложить, но сделать это например с сотней рандомных чисел уже сложней. Новое решение позволяет считать сумму любого количества рандомных чисел:
<?php $array_for = array(); $N = 9; for ($value = 0; $value < $N; $value++) { $num = rand(-21, 35); echo $num, "<br>"; $array_for[]= $num; } $sum = array_sum ($array_for); echo "Сумма $value рандомных значений: ", $sum; ?>
- Log in to post comments
- 7732 reads
melisa
Mon, 01/21/2019 - 17:36
Permalink
замечания
Первый вариант не решает поставленную задачу: найти сумму N чисел, как Вы сами отметили ниже.
А также, если говорить об этом отрезке кода, абстрагируясь от задачи, то здесь неверно применён цикл for. У Вас изначально условие цикла предполагает только одну итерацию, а значит, и цикл не нужен вовсе:
Если что-то можно опустить, лучше это опустить.
Да и вообще тогда уж:
Очень и очень разумно. Правильно, здесь нужно использовать цикл.
В PHP7 используется сокращённый вариант объявления - такой:
;
Здесь нарушены отступы. Всё должно быть чётко. Это также важно для читаемости.
Решение рабочее. Представьте, пожалуйста, также решение без использования функции array_sum()
rvsokolov
Mon, 01/21/2019 - 18:04
Permalink
Замечания исправлены
Спасибо — переписал в соответствии с camelCase, объявил массив через [ ], отступы поправил
melisa
Mon, 01/21/2019 - 18:07
Permalink
отступы не изменились
Отступы не изменились. Здесь ошибки в 7, 10 и 11 строках.
rvsokolov
Mon, 01/21/2019 - 19:17
Permalink
Альтернативное решение
Сложение N числа рандомных значений
melisa
Mon, 01/21/2019 - 19:20
Permalink
замечания и предложения
Запишите это короче с помощью комбинированого оператора
rvsokolov
Mon, 01/21/2019 - 19:24
Permalink
Альтернативное решение
Использую комбинированный оператор:
melisa
Mon, 01/21/2019 - 19:26
Permalink
принято
принято