|
2 / 1 / 1
Регистрация: 22.02.2023
Сообщений: 6
|
|||||||||||
Непонятное мне поведение return в коде22.02.2023, 20:24. Показов 417. Ответов 2
Была задача написать что-то вроде цензора: (вручную, просто задача на усвоение материала) приходят пары "слово1", "слово2" и потом приходит некая строка, в которой надо найти "слово1" и заменить на "слово2".
Код написал с использованием рекурсии и все должно было бы работать, но... ...не ретернится тогда, когда ожидается:
Писал практически идентичный код через цикл for - все нормально ретернилось... Не понимаю, почему тут именно так срабатывает, с лишними ретернами? Подскажите логику... Может нюансы какие есть? Или я где-то не улавливаю логику?
0
|
|||||||||||
| 22.02.2023, 20:24 | |
|
Ответы с готовыми решениями:
2
Непонятное поведение return Непонятное мне поведение функции Непонятное поведение поведение TIM6 на STM32f4discovery |
|
Модератор
2379 / 1739 / 677
Регистрация: 07.08.2016
Сообщений: 4,093
|
||||||||||||
| 22.02.2023, 23:26 | ||||||||||||
Сообщение было отмечено ElArahnid как решение
Решение
Вызвав foo() мы увидим в консоли только 1, 2,3 но не увидим "baz" Теперь по шагам (выводы в консоль описывать не буду, с ними и так все понятно): 1. Запускаем foo() 2. foo вызывает bar() и ждет окончания ее работы. 3. bar вызывает baz() и тоже ждет окончания ее работы, foo в этот момент ждет их обоих 4. baz возвращает строку "baz" и заканчивает свою работу 5. bar получила результат работы baz, но мы его никуда не сохранили и ничего не возвращаем из функции, а раз нет явного указания return то по умолчанию функция возвращает undefined. bar заканчивает свою работу. 6. foo получает результат работы bar - undefined, тоже никуда его не сохраняет и так как нет явного return то по умолчанию тоже возвращает undefined. Можно представить это проще, на место вызова функций bar() и baz() подставьте то, что они возвращают. Получим:
P.S. т.е. ваш return input; возвращает то что положено, а вот в предыдущих вызовах функции doCensIt(); нет явного return и они возвращают undefined
2
|
||||||||||||
|
2 / 1 / 1
Регистрация: 22.02.2023
Сообщений: 6
|
|
| 22.02.2023, 23:34 [ТС] | |
|
Понял! Все дело во вложенности return-ов! Приблизительно так и думал, но вы наглядно пояснили. Благодарю!
0
|
|
| 22.02.2023, 23:34 | |
|
Помогаю со студенческими работами здесь
3
Непонятное поведение Непонятное поведение Непонятное поведение Непонятное поведение ОС Непонятное поведение программы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|