THINK JAVA: CÁCH SUY NGHĨ NHƯ NHÀ KHOA HỌC MÁY TÍNH - Trang 54

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

ươ

ứ ớ

ư