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
ỗ
ồ
ự
ệ
ả
dĩ đ 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.