<MyRusakov.ru />

PHP и MySQL с Нуля до Гуру 3.0

PHP и MySQL с Нуля до Гуру 3.0

Данный курс научит Вас программировать на самом популярном Web-языке в мире - PHP. Курс состоит из 9 разделов, в которых с нуля рассказывается и показывается процесс написания различных скриптов на PHP.

В курсе Вы узнаете всю необходимую теоретическую часть, а также увидите массу практических примеров, в том числе, и из моей практики.

В Бонусе «Создание сайта для библиотеки» Вы увидите применение знаний из основного курса при создании полноценного проекта.

Просмотрев данный курс, Вы сможете создавать абсолютно любые PHP-сайты любой сложности.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Зачем Вы изучаете программирование/создание сайтов?

Форум сайта MyRusakov.ru

2_13(2+3) (Массивы и списки. задачи 2 и 3).
24.01.2019 11:29:24 2_13(2+3) (Массивы и списки. задачи 2 и 3). Сообщение #1
elk27ok_myrus

elk27ok_myrus

Новичок

Новичок

Дата регистрации:
11.01.2019 08:49:54

Сообщений: 5

Если чуть расширить задачу до:
3. Повторим пункт 2 с использованием цикла while, но выведем ТОЛЬКО РЕЗУЛЬТИРУЮЩУЮ сумму, используя continue ВНУТРИ цикла.
получаем:
$sum = (int)"";
for ($j = 0; $j < count($arr); $j++) {

$sum += $arr[$j];
if ($j < (count($arr) - 1)) {
continue;
} else {
echo '<br>' . $sum;
}
}

то же для while (только результирующая):
$sum = 0;
$d = 0;
echo '<br> $sum = ' . $sum;
echo '<br> $d = ' . $d;

while ($d < count($arr)) {
$sum += $arr[$d];
$d++;

if ($d < (count($arr))) {
continue;
} else {
echo '<br>' . $sum;
}
}
ВОПРОСЫ:
1. Почему в последнем варианте "count($arr)", а не "count($arr) - 1"?
2. Почему при перемещении инкремента на ПОСЛЕ if else - сервер зависает? (как будто - бесконечный цикл - лечится только перезагрузкой).
Профиль Ответить
11.07.2019 15:56:11 2_13(2+3) (Массивы и списки. задачи 2 и 3). Сообщение #2
shmel010201

shmel010201

Освоившийся

Освоившийся

Дата регистрации:
03.05.2016 17:31:25

Сообщений: 23

Все потому что Вы уже указали же:
1. Если $d мкньше размера массива (количество элементов), то цикл начинается заново, иначе выводится результат от $sum, какой смысл уменьшать число количество элементов на 1, т.е если например там 8 элементов, то при $d == 8 срабатывает ветвь else, а уменьшая вы уже как бы делаете так как будто в массиве было меньше элементов, т.е 7.

2. Это все потому что $d = 0, и вы проверяете а $d меньше того или иного значения, т.к оно 0, цикл повторяется и нет смысла после else инкрементировать
Профиль Ответить