|
0 / 0 / 0
Регистрация: 18.06.2016
Сообщений: 10
|
||||||
Вызов внутреннего метода, применение charAt()16.08.2016, 14:19. Показов 1405. Ответов 5
Метки нет (Все метки)
Всем привет!
Помогите понять код. Не могу разобраться, как работает метод с вызовом самого себя void backward(int idx) { if(idx != str.length()-1) backward(idx+1);. Заранее спасибо =)
0
|
||||||
| 16.08.2016, 14:19 | |
|
Ответы с готовыми решениями:
5
Вызов метода внутреннего класса методом внешнего класса Полиморфизм: вызов метода базового класса, переопределенного метода и нового метода Вызов внутреннего прерывания из внешнего |
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
| 16.08.2016, 14:46 | |
|
До тех, пока не дойдет до последнего символа, backward будет вызывать сам себя, передавая в качестве аргумента индекс следующего символа. Когда он окажется на последнем символе условие не сработает, выполнится следующая команда - sysout, потом управление вернется в метод backward с предыдущей буквой, распечатает ее, ну и так далее.
0
|
|
|
28 / 33 / 12
Регистрация: 11.04.2016
Сообщений: 132
|
|
| 17.08.2016, 08:15 | |
|
AyerT, Это называется "рекурсия". Весьма интересная, занятная, но в то же время сложная штука. Советую ознакомиться более подробно =)
0
|
|
|
0 / 0 / 0
Регистрация: 18.06.2016
Сообщений: 10
|
|
| 17.08.2016, 10:05 [ТС] | |
|
84, спасибо, канеш, что подсказали как подобный метод называется, наверное в каждой книжке его так и величают
но я просто попросил в этом случае пояснить работу этого метода, PEACE!
0
|
|
|
0 / 0 / 0
Регистрация: 18.06.2016
Сообщений: 10
|
|
| 19.08.2016, 11:09 [ТС] | |
|
xoraxax, а можно слегка расписать пример? я никак не могу понять, почему значения выводятся в обратном порядке. Как я понимаю, так в начальное значение переменной idx подается 0, после идет условие if, которое говорит если "0" не равен "14" (15-1) то вызывается метод backward с idx (0+1) = 1. И так далее до конца завершения условия. Syste.out. ... выводит нам значение с параметром idx... Тесть в моем понятии это от "0" до "14", как была и строка в начале кода. =)
Походу я не совсем правильно понимаю рекурсию ))
0
|
|
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
| 19.08.2016, 11:41 | |
Сообщение было отмечено AyerT как решение
Решение
Вот вызываешь ты backward(0), у тебя idx==0, условие выполнилось, вызывается функция backward(1) - до sysout мы еще не дошли, попадаем в другой контекст, в котором idx==1, условие опять выполняется, вызывается backward(2), допустим это последний символ, условие не выполнится, idx==2, вызывается sysout(str.charAt(2)), управление возвращается в функцию backward, где idx==1, выполняется sysout(str.charAt(1)), управление возвращается в backward(0), вызывается sysout(0).
Открой в дебаггере - посмотри как выполняется.
1
|
|
| 19.08.2016, 11:41 | |
|
Помогаю со студенческими работами здесь
6
Вызов методов классов друг у друга (вызов метода из другого класса) Вызов метода агрегата из метода агрегируемого класса Вызов метода, ожидающего завершение другого метода Вызов переменной метода из другого метода Вызов переменной метода A из метода В Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|