Ich kann nicht für das Leben von mir herauszufinden, warum dies 0 anstelle von 5 zurückgibt. "I" wird erhöht, bevor es die letzte return-Anweisung trifft, aber es immer 0 zurückgibt, vom ersten Aufruf im Stapel. Ich würde denken, dass seit dem letzten Aufruf auf dem Stapel die Rückkehr in den Block trifft "i == 5" erste würde es zurückgeben und drucken 5.Warum gibt Rekursion den ersten Aufruf im Stapel zurück und nicht den letzten?
Returns 0
public static void main(String[] args) {
System.out.println(incrementI(0));
}
public static int incrementI(int i) {
if (i == 5){
return i;
} else {
incrementI(i + 1);
}
return i;
}
Returns 5
public static int incrementI(int i) {
if (i == 5){
return i;
} else {
return incrementI(i + 1);
}
}
java! == javascript –
Was ist 'something()' ?? Soll das "incrementI()" sein? – Pointy
Was macht 'etwas (int i)'? – Pavel