Как работает рекурсия? - C#
Формулировка задачи:
Помогите разобраться, не понимаю до конца как работает рекурсия в связке с субстринг...
Вопрос: Почему при условии if (str.Length > 1) не выводит последнею букву???
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Substring
- {
- class Rek
- {
- public void DisplayReverse(string str)
- {
- if (str.Length > 0) ///При длине строки в 1-цу, 2-ой аргумент сабстринг будет равен 0
- DisplayReverse(str.Substring(1, str.Length - 1));
- else
- return;
- Console.Write(str[0]);///Как я думал (неправильно), первый вывод в рекурсии должен произойти при длине строки в
- /// в один символ. Почему при условии if (str.Length > 1) не выводит последнею букву???
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- string str = "This is a";
- Console.WriteLine(str.Substring(1, str.Length - 1));
- Console.WriteLine(str[0]);
- Console.WriteLine(str.Substring(1, str.Length - 9));
- Console.WriteLine("Lengh is "+ (str.Length-9));
- Console.WriteLine(str[0]);
- char c = str[0];
- Console.WriteLine("Char c="+c);
- string f = "F";
- ////Console.WriteLine("String F is Substringed from 1 to 0(1-1) "+f.Substring(1, str.Length - 1)); не работает по
- //////понятным причинам
- Rek d = new Rek();
- Console.WriteLine("\n String is\n" + str + "\nReversed string is ");
- d.DisplayReverse(str);
- Console.ReadKey();
- }
- }
- }
Решение задачи: «Как работает рекурсия?»
textual
Листинг программы
- Console.Write(str[0]);//не моё
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д