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

return

-x;

}

else

{

return

x;

}

}

Vì nh ng l nh return này c u trúc đi u ki n l a ch n, cho nên ch có m t l nh đ

c th c thi. Dù r ng

ở ấ

ệ ự

ộ ệ

ượ

hoàn toàn h p l n u b n có nhi u l nh return trong cùng m t ph

ng th c, song b n c n ghi nh r ng

ợ ệ ế

ề ệ

ươ

ạ ầ

ớ ằ

ngay khi m t l nh return đ

c th c hi n, ph

ng th c s k t thúc mà không th c hi n b t c l nh nào

ộ ệ

ượ

ươ

ứ ẽ ế

ấ ứ ệ

ti p sau nó.

ế

Mã l nh xu t hi n sau dòng l nh

return

, hay nói chung, trong b t c ch nào khác c a ch

ng trình

ấ ứ ỗ

ươ

mà không n m trong lu ng th c hi n thì đ

c g i là

ượ ọ

mã l nh ch t

ế . M t s trình biên d ch s c nh báo

ộ ố

ẽ ả

n u có đo n l nh ch t trong mã l nh b n vi t nên.

ế

ạ ệ

ế

ế

N u b n đ t l nh return trong c u trúc đi u ki n, thì ph i đ m b o đ

c r ng

ế

ặ ệ

ả ả

ượ ằ m i lu ng th c hi n kh

đ u d n t i m t l nh

ẫ ớ

ộ ệ

return

. Ch ng h n:

public static double

absoluteValue(

double

x) {

if

(x < 0) {

return

-x;

}

else if

(x > 0) {

return

x;

}

// SAI!!

}

Ch

ng trình này không h p l vì n u

ươ

ợ ệ

ế x b ng 0, thì c hai đi u ki n không có đi u ki n nào đ c tho

ượ

mãn, và hàm s k t thúc mà không g p ph i l nh

ẽ ế

ả ệ

return

nào. Trình biên d ch th

ng s đ a ra thông

ườ

ẽ ư

báo ki u nh

ư “return statement required in absoluteValue” (yêu c u ph i có l nh return trong

absoluteValue); l i thông báo này d gây nh m l n vì trong đó b n đã vi t hai l nh return r i.

ế

6.2 Phát tri n ch

ng trình

ươ

Lúc này b n đã có th nhìn vào toàn b ph

ng th c Java r i cho bi t chúng có nhi m v gì. Nh ng

ươ

ế

ư

ch a ch c b n đã bi t cách vi t nên chúng. Tôi s đ xu t m t ph

ng pháp

ư

ắ ạ

ế

ế

ẽ ề

ươ

g i là

phát tri n tăng

d n

.

ví d này, gi d b n c n tìm kho ng cách gi a hai đi m cho b i các to đ

ả ụ ạ ầ

ạ ộ (x1, y1) và (x2, y2). Theo

đ nh nghĩa thông th

ng, kho ng cách (distance) s là:

ườ

distance =


————————————
(x

2

x

1

)

2

+(y

2

y

1

)

2

B

c đ u tiên là cân nh c xem m t hàm

ướ ầ

distance

trong Java s trông nh th nào. Nói cách khác, các

ư ế

s li u đ u vào (tham s ) và k t qu (giá tr tr l i) là gì?

ố ệ

ế

ị ả ạ

Trong tr

ng h p này, s li u đ u vào mô t hai đi m; ta có th bi u th chúng b ng b n s

ườ

ố ệ

ể ể

ố ố double, dù

r ng sau này ta s th y Java có ki u đ i t

ng

ẽ ấ

ố ượ

Point mà ta có th t n d ng.

ể ậ

Giá tr c n tr v là kho ng

ị ầ

ả ề

cách, t c là s thu c ki u

ể double.