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

Ch ng h n:

while

(x > 0 && y < 0) {

// thao tác gì đó với x

// thao tác gì đó với y

System.out.println(

"x: "

+ x);

System.out.println(

"y: "

+ y);

System.out.println(

"điều kiện: "

+ (x > 0 && y < 0));

}

Bây gi khi ch y ch

ng trình, b n s th y ba dòng k t qu v i m i l n ch y qua vòng l p. L n cu i

ươ

ạ ẽ ấ

ế

ả ớ

ỗ ầ

cùng ch y qua vòng l p đi u ki n s ph i là

ệ ẽ

false

. N u vòng l p ti p t c ch y, b n s nhìn đ

c các giá

ế

ế ụ

ạ ẽ

ượ

tr c a

ị ủ

x

y

, và có th hình dung đ

c t i sao chúng không đ

c c p nh t đúng.

ượ ạ

ượ ậ

Đ QUY VÔ H N

Trong nhi u tr

ng h p, m t vòng l p đ quy s khi n ch

ng trình phát bi t

ườ

ế

ươ

l

ệ StackOverflowException. Nh ng n u ch ng trình ch m ch p có th nó s t n nhi u th i gian đ b

ư

ế

ươ

ẽ ố

ể ị

đ y ngăn x p.

ế

N u b n nghi ng r ng m t hàm ho c ph

ng th c nào đó gây ra đ quy vô h n, hãy b t đàu ki m tra

ế

ờ ằ

ươ

đ ch c r ng có m t tr

ng h p c s . Nói cách khác, c n ph i có đi u ki n nào đó đ khi n cho hàm

ể ắ ằ

ườ

ợ ơ ở

ế

ho c ph

ng th c tr v mà không g i đ quy n a. N u không, b n c n ph i nghĩ l i thu t toán và tìm

ươ

ả ề

ọ ệ

ế

ạ ầ

ra m t tr

ng h p c s .

ườ

ợ ơ ở

N u có m t tr

ng h p c s nh ng ch

ng trình d

ng nh không đ t đ n đó, thì hãy thêm câu

ế

ườ

ợ ơ ở

ư

ươ

ườ

ư

ạ ế

l nh

print

vào đi m đ u c a hàm ho c ph

ng th c đ in ra các tham bi n. Bây gi khi ch y ch

ng

ầ ủ

ươ

ứ ể

ế

ươ

trình, b n s th y m t ít dòng k t qu m i l n hàm ho c ph

ng th c đ

c g i đ n, và s th y giá tr

ạ ẽ ấ

ế

ả ỗ ầ

ươ

ứ ượ ọ ế

ẽ ấ

các tham s . N u tham s không thay đ i v i xu h

ng v tr

ng h p c s , b n s th y đ

c t i sao.

ố ế

ổ ớ

ướ

ề ườ

ợ ơ ở ạ ẽ ấ

ượ ạ

LU NG TH C THI

N u b n không ch c ch n v lu ng th c hi n trong ch

ng trình, hãy thêm các câu l nh

ế

ề ồ

ươ

print

vào

đi m đ u c a m i hàm v i thông báo ki u nh “b t đ u ph

ng th c

ầ ủ

ư ắ ầ

ươ

foo

”, trong đó

foo

là tên ph

ng

ươ

th c.

Bây gi khi ch y ch

ng trình, nó s in ra m t d u v t c a m i ph

ng th c khi đ

c kích ho t đ n.

ươ

ộ ấ

ế ủ

ươ

ượ

ạ ế

B n cũng có th in ra nh ng đ i s mà t ng ph

ng th c nh n đ

c. Khi ch y ch

ng trình, hãy ki m

ố ố

ươ

ượ

ươ

tra xem các giá tr này h p lý không, và ki m tra m t trong nh ng l i th

ng m c ph i nh t—cung c p

ườ

các đ i s sai th t .

ố ố

ứ ự

KHI CH Y CH

NG TRÌNH TÔI NH N Đ

C M T BI T L .

ƯƠ

ƯỢ

Khi có bi t l x y ra, Java s in m t thông báo trong đó có tên c a bi t l , dòng l nh có v n đ , và m t

ệ ệ ả

ệ ệ

l n d u v t trên ngăn x p (stack trace). B n thân cái l n v t này ch a thông tin v ph

ng th c

ế

ế

ế

ươ

ứ đang

đ

c ch y, và ph

ng th c kích ho t nó, r i ph

ng th c kích ho t ph

ng th c đó, và c nh v y.

ượ

ươ

ươ

ươ

ư ậ

B

c đ u tiên là ki m tra v trí trong ch

ng trình n i mà l i xu t hi n, đ ng th i th hình dung đi u gì

ướ ầ

ươ

ơ

đã x y ra.

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.