nh v y thì in ra m t thông báo l i r i dùng
ư ậ
ộ
ỗ ồ
return đ thoát kh i ph
ng th c. Lu ng th c thi s l p
ể
ỏ
ươ
ứ
ồ
ự
ẽ ậ
t c tr l i ch g i ph
ng th c đó và nh ng dòng còn l i c a ph
ng th c s không đ
c th c hi n.
ứ
ở ạ
ỗ ọ
ươ
ứ
ữ
ạ ủ
ươ
ứ ẽ
ượ
ự
ệ
Tôi đã dùng m t giá tr d u ph y đ ng bên v ph i c a đi u ki n vì v trái bi u th c này là m t bi n
ộ
ị ấ
ẩ
ộ
ở
ế
ả ủ
ề
ệ
ế
ể
ứ
ộ
ế
ph y đ ng.
ẩ
ộ
4.7 Chuy n đ i ki u
ể
ổ
ể
B n có th t h i r ng làm sao ch
ng trình c a ta có th êm xuôi v i bi u th c ki u nh
ạ
ể ự ỏ ằ
ươ
ủ
ể
ớ
ể
ứ
ể
ư "Gia tri log
cua x bang " + result, b i m t toán h ng là
ở
ộ
ạ
String còn toán h ng kia là
ạ
double. Truong tr
ng h p này
ườ
ợ
Java đã thông minh đ thay ta chuy n giá tr
ể
ể
ị double thành String tr c khi th c hi n vi c ghép chu i.
ướ
ự
ệ
ệ
ỗ
M i khi b n th “c ng” hai bi u th c, mà m t trong s đó là
ỗ
ạ
ử ộ
ể
ứ
ộ
ố
String, Java s chuy n đ i cái còn l i
ẽ
ể
ổ
ạ
thành String r i m i th c hi n ghép chu i. B n nghĩ đi u gì s x y ra n u th c hi n phép c ng gi a m t
ồ
ớ
ự
ệ
ỗ
ạ
ề
ẽ ả
ế
ự
ệ
ộ
ữ
ộ
s nguyên v i m t giá tr ph y đ ng?
ố
ớ
ộ
ị
ẩ
ộ
4.8 Đ quy
ệ
ch
ng tr
c tôi đã nói r ng vi c m t ph
ng th c kích ho t ph
ng th c khác là h p l , và a đã xét
Ở ươ
ướ
ằ
ệ
ộ
ươ
ứ
ạ
ươ
ứ
ợ ệ
vài ví d . Tôi ch a đ c p r ng m t ph
ng th c kích ho t chính nó cũng h p l . M c dù b ngoài thì có
ụ
ư
ề ậ ằ
ộ
ươ
ứ
ạ
ợ ệ
ặ
ề
th đi u này không rõ hay d ra sao, nh ng th c ra đó chính là m t trong nh ng đ c đi m hay nh t
ể ề
ở
ư
ự
ộ
ữ
ặ
ể
ấ
trong l p trình.
ậ
Ch ng h n, hãy xét ph
ng th c sau:
ẳ
ạ
ươ
ứ
public static void
countdown(
int
n) {
if
(n == 0) {
System.out.println(
"Bum!"
);
}
else
{
System.out.println(n);
countdown(n-1);
}
}
Ph
ng th c có tên là
ươ
ứ
countdown và nó nh n tham s là m t s nguyên. N u tham s
ậ
ố
ộ ố
ế
ố b ng 0 ho c âm,
ằ
ặ
ch
ng trình s in ra ch , “Bùm!” Còn n u không, nó s in ra giá tr tham s
ươ
ẽ
ữ
ế
ẽ
ị
ố và sau đó kích ho t m t
ạ
ộ
ph
ng th c có tên
ươ
ứ
countdown
—nghĩa là chính nó—nh ng truy n vào đ i s
ư
ề
ố ố
n-1
.
Đi u gì s x y ra khi ta kích ho t m t ph
ng th c ki u nh th này?
ề
ẽ ả
ạ
ộ
ươ
ứ
ể
ư ế
countdown(3);
Vi c th c hi n
ệ
ự
ệ
countdown
b t đ u v i
ắ ầ
ớ
n=3
, và do
n
l n h n 0, nó đ a ra giá tr 3, và r i g i chính nó…
ớ
ơ
ư
ị
ồ ọ
Vi c th c hi n
ệ
ự
ệ
countdown
b t đ u v i
ắ ầ
ớ
n=2
, và do
n
l n h n 0, nó đ a ra giá tr 2, và r i g i chính nó…
ớ
ơ
ư
ị
ồ ọ
Vi c th c hi n
ệ
ự
ệ
countdown
b t đ u v i
ắ ầ
ớ
n=1
, và do
n
l n h n 0, nó đ a ra giá tr 1, và r i g i chính nó…
ớ
ơ
ư
ị
ồ ọ
Vi c th c hi n
ệ
ự
ệ
countdown
b t đ u v i
ắ ầ
ớ
n=0
, và do
n
không còn l n h n 0, nó đ a ra dòng ch “Bùm!” và
ớ
ơ
ư
ữ
r i quay v .
ồ
ề
Ph
ng th c
ươ
ứ
countdown
ng v i
ứ
ớ
n=1
quay v .
ề
Ph
ng th c
ươ
ứ
countdown
ng v i
ứ
ớ
n=2
quay v .
ề