Ph
ng th c
ươ
ứ
countdown
ng v i
ứ
ớ
n=3
quay v .
ề
Và r i b n tr v v i
ồ ạ
ở ề ớ
main
. Nh v y, toàn b k t qu đ u ra nh sau:
ư ậ
ộ ế
ả ầ
ư
3
2
1
Bum!
Ví d th hai là hãy xem l i các ph
ng th c
ụ ứ
ạ
ươ
ứ newLine và threeLine.
public static void
newLine() {
System.out.println(
""
);
}
public static void
threeLine() {
newLine(); newLine(); newLine();
}
M c dù cách này có tác d ng, nh ng s không giúp ích đ
c nhi u trong tr
ng h p ta c n in 2, ho c
ặ
ụ
ư
ẽ
ượ
ề
ườ
ợ
ầ
ặ
106 dòng m i. M t cách làm hay h n là
ớ
ộ
ơ
public static void
nLines(
int
n) {
if
(n > 0) {
System.out.println(
""
);
nLines(n-1);
}
}
Ch
ng trình này t
ng t nh
ươ
ươ
ự
ư countdown; khi
n
còn l n h n 0, nó s in ra m t dòng m i
ớ
ơ
ẽ
ộ
ớ và sau đó s
ẽ
kích ho t chính nó đ in thêm
ạ
ể
n - 1
dòng m i n a. Nh v y s dòng k t qu s là
ớ ữ
ư ậ ố
ế
ả ẽ
1 + (n-1)
, t c là
ứ
b ng
ằ
n
.
Khi m t ph
ng th c kích ho t chính nó, đi u này g i là
ộ
ươ
ứ
ạ
ề
ọ
đ quy
ệ
, và nh ng ph
ng th c đó có
ữ
ươ
ứ
tính đ
ệ
quy.
4.9 Bi u đ ngăn x p cho các ph
ng th c đ quy
ể
ồ
ế
ươ
ứ
ệ
Trong ch
ng tr
c, chúng ta đã dùng m t bi u đ ngăn x p đ bi u th tr ng thái c a m t ch
ng
ươ
ướ
ộ
ể
ồ
ế
ể ể
ị ạ
ủ
ộ
ươ
trình trong quá trình ph
ng th c đ
c kích ho t. Lo i bi u đ này cũng ti n dùng cho vi c di n gi i
ươ
ứ ượ
ạ
ạ
ể
ồ
ệ
ệ
ễ
ả
m t ph
ng th c đ quy.
ộ
ươ
ứ ệ
Hãy nh r ng m i khi ph
ng th c đ
c kích ho t, Java t o ra m t “khung” m i trong đó có ch a
ơ ằ
ỗ
ươ
ứ ượ
ạ
ạ
ộ
ớ
ứ
phiên b n m i c a các bi n c c b và tham s trong ph
ng th c.
ả
ớ ủ
ế ụ ộ
ố
ươ
ứ
Hình v này minh ho m t s đ ngăn x p cho ph
ng th c
ẽ
ạ ộ ơ ồ
ế
ươ
ứ
countdown
khi g i v i
ọ ớ
n = 3
: