Ardaric
Erfahrenes Mitglied
Eines verstehe ich nicht: Wieso wird am Ende 100 .. 109 Ausgegeben? Wenn iNum == 0 ist, wird die if-Abfrage doch übersprungen, und dann gibt die Methode doch 100 + 0 zurück. Aber warum macht diese Methode zwischenschritte, und warum ist der Wert, der tatsächlich zurückgegeben wird 110?
Ausgabe:
10
9
8
7
6
5
4
3
2
1
0
100
101
102
103
104
105
106
107
108
109
Counter: 110
So, dachte ich, sollte es aussehen:
10
9
8
7
6
5
4
3
2
1
0
Counter: 100
Code:
using System;
namespace Kap7
{
class CDirekt
{
static void Main(string[] args)
{
Console.WriteLine("Counter: {0}", Counter(10));
}
private static int Counter(int iNum)
{
Console.WriteLine(iNum);
if(iNum > 0)
Console.WriteLine("{0}", Counter(iNum - 1));
return 100 + iNum;
}
}
}
Ausgabe:
10
9
8
7
6
5
4
3
2
1
0
100
101
102
103
104
105
106
107
108
109
Counter: 110
So, dachte ich, sollte es aussehen:
10
9
8
7
6
5
4
3
2
1
0
Counter: 100
Zuletzt bearbeitet: