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
Post a Comment