Java recursion outputs name forwards and backwards -


i wrote basic recursion problem in class long time ago , i'm trying remember how i'm getting output prints.

its prints out name forwards , backwards. understand how prints name forwards i'm clueless how prints name backwards. did debug see step step going on can't understand how index decreasing after name prints forwards.

public class charrecursion  {  public static void printname(string name, int index)   {     if(index > name.length() - 1)     {         return;     }     else     {         system.out.println(name.charat(index));         printname(name, index + 1);         system.out.println(name.charat(index));     }   } public static void main(string[] args)    {         printname("brian", 0);   }  } 

the output briannairb

the backwards part comes second system.out.println(name.charat(index)); statement.

this 1 called once recursive call has ended, recursively, end reverse string, @ suffix markers :

    system.out.println(name.charat(index) + " - ");     printname(name, index + 1);     system.out.println(name.charat(index) + " * "); 

you :

b -  r -  -  -  n -  n * * * r * b * 

since actual sequence of calls :

printname(name, 0) > printname(name, 1) > printname(name, 2) > printname(name, 3) > printname(name, 4)

the first call resolve second println statement printname(name, 4), printname(name, 3), etc.. , order of printing becomes :

system.out.println(name.charat(4) + " * "); system.out.println(name.charat(3) + " * "); system.out.println(name.charat(2) + " * "); system.out.println(name.charat(1) + " * "); system.out.println(name.charat(0) + " * "); 

Comments