Почему инкремент постоянно увеличивается?

Ссылка скопирована
29 апреля 2026 1 ответ

Сейчас изучаю Javascipt, и хотел добавить счетчик вопросов. Хотел просто добавить переменную, которая при правильном ответе увеличиваласт на 1 (++), но при использовании с каждым выполнением инкремента он все больше растет (добавляет +1, потом +2, далее +3 и так далее).
Прикладываю ссылку на файлы (math_game) для полной картины, буду рад любой помощи.
https://github.com/Dant3lion/JS_lab

Дополнительно:

Не нужно ссылки на файл. Нужно выкладывать код сюда.
Не забывать воспользовать кнопкой </> в местном редакторе для правильного оформления.
Если кода много, или лучше будет посмотреть его в действии, то воспользоваться песочницей https://codepen.io, https://jsfiddle.net

С каждым вызовом questionGenerator на кнопку submitBtn навешиваются все новые и новые обработчики. Нужно либо навесить обработчик один раз, либо очищать предыдущие обработчики. Учитывая, что испобльзуемые переменные глобальные - вроде бы можно смело вынести навешивание обработчика из функции questionGenerator.
И да, я смотрел только один файл, ибо очень неудобно. Лучше выкладывать исходники на github или в codepen

  • Здравствуйте, спасибо за ответ! Приму ваш совет к сведению, очень помогли)
Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Роман IT Ответ

Проблема с постоянным увеличением инкремента может возникать из-за неправильного использования оператора инкремента в вашем коде.

Оператор инкремента (++), если используется после переменной (например, $i++), увеличивает значение переменной после выполнения текущего выражения. Если же оператор инкремента используется перед переменной (++$i), то значение переменной увеличивается перед выполнением текущего выражения.

Вот примеры использования обоих вариантов:

$i = 0;
echo $i++; // выведет 0, затем увеличит $i на 1
echo ++$i; // увеличит $i на 1, затем выведет 2

$i = 0; echo $i++; // выведет 0, затем увеличит $i на 1 echo ++$i; // увеличит $i на 1, затем выведет 2

Если в вашем коде инкремент постоянно увеличивается, возможно, вы случайно используете двойной оператор инкремента, например:

$i = 0;
echo $i++; // выведет 0, затем увеличит $i на 1
echo $i++; // выведет 1, затем увеличит $i на 1

$i = 0; echo $i++; // выведет 0, затем увеличит $i на 1 echo $i++; // выведет 1, затем увеличит $i на 1

В этом случае $i будет увеличиваться каждый раз на 1, потому что каждый раз вы вызываете оператор инкремента после переменной. Чтобы избежать этой проблемы, убедитесь, что вы используете оператор инкремента в нужном месте и в нужное время в вашем коде.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно