1 class Program
2 {
3 public void Count(int InVal)
4 {
5 if (InVal == 0)
6 return;
7 Count(InVal - 1); // Invoke this method again.
8 Console.WriteLine("{0} ", InVal);
9 }
10 static void Main()
11 {
12 Program pr = new Program();
13 pr.Count(3);
14 }
15 }
OK, ume li neko da mi objasni kako je moguce da ovaj mali console app kao output daje 1, 2, 3?
Evo sta mi nije jasno...
Kada se iz Main metoda pozove public void Count method sa int-om 3 kao parametrom, dolazi se do linije 7 posto je 3 vece od nule i odatle metod zove sam sebe pri cemu oduzima 1 od trenutne vrednosti InVal parametra.
Ovo se desi tri puta za redom kada InVal konacno postaje 0 i onda dolazimo do linije 6 i komande return; koja salje na kraj metoda. Kapiram da se onda kompajler vraca na liniju 7 jer je odatle pozvan metod poslednji put ali mi nije jasno kako je moguce da u tom trenutku InVal koji je do tada imao vrednost 0, odjednom dobija vrednost 1...
Hvala unapred...











Method Recursion pitanje