なぜ私は5ではなく0を返すのか理解しています。 "i"は最後のreturn文にヒットする前にインクリメントされ続けますが、スタックの最初の呼び出しから常に0が返されます。私は、スタック上の最新の呼び出しがブロック内のリターンを打つので、「私は== 5」最初のそれは5なぜ再帰はスタック内の最初の呼び出しを返しますが、最後の呼び出しは返しません。
戻り値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;
}
戻り値5を返し、印刷と思うだろう
public static int incrementI(int i) {
if (i == 5){
return i;
} else {
return incrementI(i + 1);
}
}
java!== javascript –
'something()'とは何ですか?それは 'incrementI()'であると思いますか? – Pointy
'something(int i)'は何をするのですか? – Pavel