Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.11.2013, 18:45   #1
ryouzaki
 
Регистрация: 02.09.2013
Сообщений: 4
По умолчанию почему работает рекурсия

Добрый день. Вопрос мой звучит достаточно странно, но всё-таки. Задача простая- отобразить строку наоборот с помощью рекурсии. По наитию получился вот такой код, я не понимаю почему он работает, ведь каждый раз перед отображением символа стоит рекурсивный вызов метода, а при условии, когда аргумент набирает число равное длинне строки метод должен завершить свою работу? так почему же строка отображается?
Код:
class stro4ki {
String str;
	
	stro4ki (String s){
		str=s;
	}
	void naoborot (int i)
	{
		if (i>str.length()-1) return;
		naoborot(i+1);
		System.out.print(str.charAt(i));
	}
}


public class stroki {

	public static void main(String[] args) {
		stro4ki str = new stro4ki ("123456678");
		str.naoborot(0);
	}

}
ryouzaki вне форума Ответить с цитированием
Старый 02.11.2013, 19:10   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

1-ый стопорится на строке naoborot(i+1); и вызывает 2-ой
2-ой стопорится на строке naoborot(i+1);и вызывает 3-ий
...
8-ой стопорится на строке naoborot(i+1);и вызывает 9-ый

А 9-ый просто завершается, и дальше продолжает работать 8-ой со строчки System.out.print(str.charAt(i));
8-ой просто завершается, и дальше продолжает работать 7-ой со строчки System.out.print(str.charAt(i));
...
2-ой просто завершается, и дальше продолжает работать 1-ый со строчки System.out.print(str.charAt(i));
eoln вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не пойму как работает рекурсия googl Общие вопросы Delphi 18 15.12.2011 20:30
Почему программа на С++ не работает с локальным описанием массива, но работает с глобальным? >>STINGER<< Помощь студентам 4 08.03.2011 09:56
Не работает рекурсия theroket Помощь студентам 7 19.12.2010 16:27
почему интеренет на Xp не работает, а на семерке работает Lenura Windows 18 04.10.2010 12:04
Рекурсия. Не корректно работает прога Driver_09 Помощь студентам 0 23.12.2009 20:02