Schaut mal bitte den folgenden Java Code an:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
class Rektest
{
public static void main(String[] args)
{
System.out.println(pot(4,3));
} //ENDE main();
public static int pot(int x, int y)
{
if(y <= 0)
{
return 1;
}
else
{
return x*pot(x,y-1);
}
} //ENDE pot();
} //ENDE Klasse Rektest.java
|
Ich check nicht wie das ganze hier abläuft. Kann mir das mal einer erklären? Also wie die Rechnung x*pot(x,y-1) genau abläuft. Ich verstehe, dass es drei Durchläufe gibt, bis eben y=0 ist. Aber dann wird 1 returned und das Endergebnis (64) wird damit multipliziert. Wenn ich anstatt return 1, return n angebe, wird 64 (4^3) mit n multipliziert. Und wo genau ist eigentlich das Zwischenergebnis? Wo liegt das? X ist ja immer 4.
Zusammengefasst:
- was passiert bei return x*pot(x,y-1) ganz genau? Nja, dass y jedes mal dekrementiert wird, ist mir auch klar

- Warum wird das Ergebnis nochmal mit diesem return aus der if-Klausel multipliziert?
Für das Programm kann ich nix, ist genauso vorgegeben.
Danke euch!
gruß, java-mätt