Tr v
ở ề M c l c
ụ ụ cu n sách
ố
6.1 Nh ng giá tr đ
c tr l i
ữ
ị ượ
ả ạ
M t s ph
ng th c mà ta đã dùng, nh các hàm toán h c, có tr l i k t qu . Nghĩa là, hi u ng t vi c
ộ ố
ươ
ứ
ư
ọ
ả ạ ế
ả
ệ ứ
ừ ệ
kích ho t ph
ng th c là t o ra m t giá tr m i mà ta th
ng gán nó cho m t bi n ho c dùng nh m t
ạ
ươ
ứ
ạ
ộ
ị ớ
ườ
ộ
ế
ặ
ư ộ
ph n h p nên m t bi u th c l n h n. Ch ng h n:
ầ
ợ
ộ
ể
ứ ớ
ơ
ẳ
ạ
double
e = Math.exp(1.0);
double
height = radius * Math.sin(angle);
Nh ng cho đ n gi t t c nh ng ph
ng th c mà t tay vi t đ u là ph
ng th c
ư
ế
ờ ấ ả
ữ
ươ
ứ
ự
ế ề
ươ
ứ r ng
ỗ ; theo nghĩa
nh ng ph
ng th c này không tr l i giá tr nào. Khi b n kích ho t m t ph
ng th c r ng, nó th
ng
ữ
ươ
ứ
ả ạ
ị
ạ
ạ
ộ
ươ
ứ ố
ườ
ch t đ
c đ t trên m t dòng mà không có l nh gán nào c :
ỉ ự ượ ặ
ộ
ệ
ả
countdown(3);
nLines(3);
Trong ch
ng này ta vi t nh ng ph
ng th c tr l i thông tin, mà tôi g i là ph
ng th c
ươ
ế
ữ
ươ
ứ
ả ạ
ọ
ươ
ứ tr l i
ả ạ giá trị.
Ví d đ u tiên là
ụ ầ
area, m t ph
ng th c nh n vào tham s là m t
ộ
ươ
ứ
ậ
ố
ộ double, r i tr l i
ồ
ả ạ di n tích c a m t
ệ
ủ
ộ
hình tròn v i bán kính cho tr
c:
ớ
ướ
public static double
area(
double
radius) {
double
area = Math.PI * radius * radius;
return
area;
}
Đi u đ u tiên mà ta nh n th y là đo n đ u c a đ nh nghĩa ph
ng th c đã khác đi. Thay vì
ề
ầ
ậ
ấ
ạ
ầ ủ
ị
ươ
ứ
public static
void, v n đ ch m t ph
ng th c r ng, ta th y
ố
ể ỉ ộ
ươ
ứ ỗ
ấ public static double, có nghĩa là giá tr tr v t ph ng
ị ả ề ừ
ươ
th c này là m t
ứ
ộ double. Tôi v n ch a gi i thích ý nghĩa c a
ẫ
ư
ả
ủ public static, song b n hãy kiên nh n.
ạ
ẫ
Dòng cu i là m t d ng m i c a câu l nh
ố
ộ ạ
ớ ủ
ệ return trong đó bao g m m t giá tr tr l i. Câu l nh này có
ồ
ộ
ị ả ạ
ệ
nghĩa là “t ph
ng th c này hãy l p t c tr v và dùng bi u th c kèm theo đây làm giá tr tr l i.” Bi u
ừ
ươ
ứ
ậ ứ
ở ề
ể
ứ
ị ả ạ
ể
th c mà b n đ t ra có th ph c t p tùy ý, vì v y ta có th vi t ph
ng th c sau m t cách g n h n:
ứ
ạ
ặ
ể
ứ ạ
ậ
ể ế
ươ
ứ
ộ
ọ
ơ
public static double
area(
double
radius) {
return
Math.PI * radius * radius;
}
M t khác, nh ng
ặ
ữ bi n t m th i
ế
ạ
ờ như area th ng giúp cho vi c g l i đ c d dàng h n.
ườ
ệ ỡ ỗ ượ ễ
ơ Trong c i hai
ả
tr
ng h p, ki u c a bi u th c trong l nh
ườ
ợ
ể ủ
ể
ứ
ệ return ph i kh p v i ki u c a ph ng th c. Nói cách khác,
ả
ớ
ớ
ể ủ
ươ
ứ
khi b n khai báo r ng ki u tr l i là
ạ
ằ
ể
ả ạ
double, b n đã cam k t r ng ph
ng th c này cu i cùng s t o ra
ạ
ế ằ
ươ
ứ
ố
ẽ ạ
m t
ộ double. N u b n th
ế
ạ
ử return mà không kèm theo bi u th c nào, ho c kèm theo bi u th c nh ng sai
ể
ứ
ặ
ể
ứ
ư
ki u, thì trình biên d ch s r y la b n.
ể
ị
ẽ ầ
ạ
Đôi khi c n ph i có nhi u l nh return, m i l nh đ t m t nhánh c a l nh đi u ki n:
ầ
ả
ề ệ
ỗ ệ
ặ ở ộ
ủ ệ
ề
ệ
public static double
absoluteValue(
double
x) {
if
(x < 0) {