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

return

result;

}

}

Lu ng th c hi n c a ch

ng trình này cũng gi ng v i

ệ ủ

ươ

countdown

trong M c 4.8. N u ta kích

ế

ho t

factorial

v i giá tr 3:

Vì 3 khác 0 nên ta ch n nhánh th hai và tính giai th a c a

ừ ủ

n-1

Vì 2 khác 0 nên ta ch n nhánh th hai và tính giai th a c a

ừ ủ

n-1

Vì 1 khác 0 nên ta ch n nhánh th hai và tính giai th a c a

ừ ủ

n-1

Vì 0 b ng

0 nên ta ch n nhánh th nh t và tr l i giá tr 1 và không g i đ quy thêm l n nào n a.

ả ạ

ọ ệ

Giá tr đ

c tr v , 1, đ

c nhân v i

ị ượ

ả ề

ượ

n, v n b ng 1, và k t qu đ c tr l i.

ế

ả ượ

ả ạ

Giá tr đ

c tr v (1) đ

c nhân v i

ị ượ

ả ề

ượ

n, v n b ng 2, và k t qu đ c tr l i.

ế

ả ượ

ả ạ

Giá tr đ

c tr v (2) đ

c nhân v i

ị ượ

ả ề

ượ

n, v n b ng 3, và k t qu , 6 tr thành giá tr tr v c a hàm ng

ế

ị ả ề ủ

v i lúc b t đ u g i đ quy.

ắ ầ

ọ ệ

Sau đây là n i dung c a bi u đ ngăn x p khi m t lo t các ph

ng th c đ

c kích ho t:

ế

ươ

ứ ượ

Các giá tr tr l i nh đây đ

c chuy n v ngăn x p.

ị ả ạ

ư ở

ượ

ế

L u ý r ng khung cu i cùng, các bi n đ a ph

ng

ư

ế

ươ

recurse

result

đ u không t n t i, vì

ồ ạ

khi n=0, nhánh t o ra chúng không đ

c th c hi n.

ượ

6.9 Ni m tin

Vi c dõi theo lu ng th c hi n c a ch

ng trình là m t cách đ c mã l nh, nh ng b n s nhanh chóng l c

ệ ủ

ươ

ư

ạ ẽ

vào mê cung. M t cách làm khác mà tôi g i là “ni m tin” nh sau. Khi b n dò đ n ch kích ho t ph

ng

ư

ế

ươ

th c, thay vì vi c đi theo lu ng th c hi n, hãy

coi nh

ư là ph ng th c đó ho t đ ng t t và tr l i k t qu

ươ

ạ ộ

ả ạ ế

đúng.
Th t ra, b n đã t ng có “ni m tin” này khi dùng các ph

ng th c c a Java. M i l n kích

ươ

ứ ủ

ỗ ầ

ho t

Math.cos

hay

System.out.println

, b n không ki m tra n i dung bên trong các ph

ng th c

ươ

này. B n ch vi c gi s r ng chúng ho t đ ng đ

c.

ỉ ệ

ả ử ằ

ạ ộ

ượ

Cũng v i lý l t

ng t khi b n kích ho t các ph

ng th c do mình vi t nên. Ch ng h n, trong M c 6.7,

ẽ ươ

ươ

ế

chúng ta đã vi t m t hàm tên là

ế

isSingleDigit

đ xác đ nh xem m t s có n m trong kho ng t 0 đ n

ộ ố

ế

9 hay không. M t khi chúng ta t thuy t ph c r ng ph

ng th c này đã vi t đúng—b ng cách ki m tra

ế

ụ ằ

ươ

ế

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.