Почему цикл for не уменьшает значение в префиксной форме? Почему такой цикл for(int i = f; i > 0; --i) не уменьшает значение i до 1 прохода цикла, хотя стоит в префиксной форме?
Декрементирование срабатывает только после прохода цикла 1 раз.
P.S. задача была про факториал, решил ее так for(int i = (f-1); i > 0; i--), но мне все равно интересно - предыдущий вариант тоже должен был работать

21 Авг 2019 в 06:13
164 +1
0
Ответы
1

Да, ваш предыдущий вариант с использованием префиксной формы декремента в цикле for должен работать правильно. Префиксная форма декремента (--i) уменьшает значение переменной i на 1 до выполнения текущей итерации цикла. Таким образом, если вы используете (--i) в условии цикла, то значение i должно уменьшаться до 1 еще до первой итерации.

Если вы столкнулись с таким поведением, возможно, есть другая ошибка в вашем коде или в спецификации задачи. Пожалуйста, убедитесь, что в других частях вашего кода нет непредвиденных действий, которые могли бы повлиять на значение переменной i до входа в цикл.

20 Апр 2024 в 13:21
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир