và th mã l nh—chúng ta có th s d ng ph
ng th c mà không c n ph i xem l i ph n mã l nh n a.
ử
ệ
ể ử ụ
ươ
ứ
ầ
ả
ạ
ầ
ệ
ữ
Đi u t
ng t cũng đúng v i các ch
ng trình đ quy. Khi b n đ n đi m kích ho t đ quy, thay vì đi
ề ươ
ự
ớ
ươ
ệ
ạ
ế
ể
ạ ệ
theo lu ng th c hi n, b n c n
ồ
ự
ệ
ạ ầ coi r ng
ằ l i g i đ quy ho t đ ng t t (t c là cho k t qu đúng) và sau đó
ờ ọ ệ
ạ ộ
ố
ứ
ế
ả
t h i mình “Gi d nh ta đã tìm đ
c giai th a c a
ự ỏ
ả ụ
ư
ượ
ừ ủ n−1, li u ta có tính đ c giai th a c a
ệ
ượ
ừ ủ n không?”
Trong tr
ng h p này, rõ ràng là ta s tính đ
c, b ng cách nhân v i
ườ
ợ
ẽ
ượ
ằ
ớ n.
Dĩ nhiên là s có chút kì l trong vi c ta gi s r ng hàm ho t đ ng t t khi ch a vi t xong nó, nh ng
ẽ
ạ
ệ
ả ử ằ
ạ ộ
ố
ư
ế
ư
chính vì v y mà ta g i đó là ni m tin!
ậ
ọ
ề
6.10 Thêm m t ví d
ộ
ụ
Ví d thông d ng th hai đ minh h a cho m t hàm toán toán h c đ quy là
ụ
ụ
ứ
ể
ọ
ộ
ọ ệ
fibonacci, v i cách đ nh
ớ
ị
nghĩa hàm nh sau:
ư
fibonacci(0) = 1
fibonacci(1) = 1
fibonacci(n) = fibonacci(n−1) + fibonacci(n−2);
Chuy n sang ngôn ng Java, ta vi t đ
c
ể
ữ
ế ượ
public static int
fibonacci(
int
n) {
if
(n == 0 || n == 1) {
return
1;
}
else
{
return
fibonacci(n-1) + fibonacci(n-2);
}
}
N u b n th g ng theo lu ng th c hi n đây, ngay c v i các giá tr nh c a
ế
ạ
ử ắ
ồ
ự
ệ ở
ả ớ
ị
ỏ ủ n, b n s đau đ u ngay.
ạ ẽ
ầ
Nh ng b ng ni m tin, n u b n coi r ng c hai l i g i đ quy đ u ho t đ ng t t, thì rõ ràng b n s thu
ư
ằ
ề
ế
ạ
ằ
ả
ờ ọ ệ
ề
ạ ộ
ố
ạ ẽ
đ
c k t qu đúng khi c ng chúng l i v i nhau.
ượ ế
ả
ộ
ạ ớ
6.11 Thu t ng
ậ
ữ
ki u tr l i:
ể
ả ạ
Ph n c a l i khai báo ph ng th c, trong đó quy đ nh ki u c a giá tr mà ph ng th c đó s tr l i.
ầ ủ ờ
ươ
ứ
ị
ể ủ
ị
ươ
ứ
ẽ ả ạ
giá tr tr l i:
ị ả ạ
Giá tr đ c đ a ra làm k t qu c a vi c kích ho t ph ng th c.
ị ượ ư
ế
ả ủ
ệ
ạ
ươ
ứ
đo n mã ch t:
ạ
ế
Ph n ch ng trình không bao gi đ c th c hi n, th ng là do nó xu t hi n sau m t câu
ầ
ươ
ờ ượ
ự
ệ
ườ
ấ
ệ
ộ
l nh
ệ
return
.
dàn giáo:
Mã l nh đ
c dùng trong giai đo n phát tri n ch ng trình nh ng b b đi phiên b n ch ng trình
ệ
ượ
ạ
ể
ươ
ư
ị ỏ
ở
ả
ươ
cu i.
ố
r ng (void):
ỗ
M t ki u tr l i đ c bi t có ph ng th c r ng; nghĩa là ph ng th c không tr l i giá tr nào.
ộ
ể
ả ạ ặ
ệ
ở
ươ
ứ ỗ
ươ
ứ
ả ạ
ị
quá t i:
ả
Vi c có nhi u ph ng th c v i cùng tên g i nh ng có các tham s khác nhau. Khi b n kích ho t m t
ệ
ề
ươ
ứ ớ
ọ
ư
ố
ạ
ạ
ộ