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

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

:

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.