câu l nh
ệ for.
Dùng câu l nh
ệ while, ta có th vi t l i
ể ế ạ countdown:
public static void
countdown(
int
n) {
while
(n > 0) {
System.out.println(n);
n = n-1;
}
System.out.println(
"Bum!"
);
}
G n nh là b n có th đ c đ
c toàn b câu l nh
ầ
ư
ạ
ể ọ ượ
ộ
ệ while b ng ti ng Anh. L nh này di n t là, “Khi
ằ
ế
ệ
ễ ả
n l n
ớ
h n không, hãy in giá tr c a
ơ
ị ủ n r i gi m giá tr c a
ồ
ả
ị ủ n xu ng 1. Khi b n đ t đ n không, hãy in ra t
ố
ạ
ạ ế
ừ
‘Bum!”’
Theo cách quy c h n, lu ng th c thi c a m t l nh
ủ ơ
ồ
ự
ủ
ộ ệ while nh sau:
ư
1.
Đ nh giá đi u ki n trong c p ngo c tròn, cho ra
ị
ề
ệ
ặ
ặ
true ho c
ặ false.
2.
N u đi u ki n là sai, thì thoát kh i l nh
ế
ề
ệ
ỏ ệ while r i ti p t c th c thi câu l nh li n sau.
ồ ế ụ
ự
ệ
ề
3.N u đi u ki n là đúng, thì th c thi nh ng câu l nh trong ph m vi c p ngo c nh n, r i tr l i b
c 1.
ế
ề
ệ
ự
ữ
ệ
ạ
ặ
ặ
ọ
ồ ở ạ ướ
Ki u lu ng th c thi này đ
c g i là
ể
ồ
ự
ượ ọ
vòng l p
ặ vì b c th ba vòng ng c tr lên đ u. Nh ng câu l nh
ướ
ứ
ượ
ở
ầ
ữ
ệ
bên trong vòng l p đ
c g i là
ặ
ượ ọ
thân c a vòng l p. N u đi u ki n là sai ngay l n đ u tiên qua vòng l p
ủ
ặ
ế
ề
ệ
ầ
ầ
ặ
thì nh ng câu l nh bên trong vòng l p không bao gi đ
c th c thi.
ữ
ệ
ặ
ờ ượ
ự
Ph n thân vòng l p c n ph i thay đ i giá tr c a m t vài bi n sao cho cu i cùng thì đi u ki n tr nên sai
ầ
ặ ầ
ả
ổ
ị ủ
ộ
ế
ố
ề
ệ
ở
và vòng l p ch m d t. N u không, vòng s đ
c l p l i mãi, và đ
c g i là vòng l p
ặ
ấ
ứ
ế
ẽ ượ ặ ạ
ượ ọ
ặ vô h n
ạ . M t câu
ộ
chuy n đùa luôn đ
c nh c đ n trong gi i khoa h c máy tính là qua vi c nh n th y ch d n trên gói d u
ệ
ượ
ắ ế
ớ
ọ
ệ
ậ
ấ
ỉ ẫ
ầ
g i đ u, “Xát, x n
c, r i l p l i,” chính là m t vòng l p vô h n.
ộ ầ
ả ướ
ồ ặ ạ
ộ
ặ
ạ
tr
ng h p
Ở ườ
ợ countdown, ta có th ch ng minh r ng vòng l p s k t thúc n u
ể ứ
ằ
ặ ẽ ế
ế n là s d ng. Còn trong
ố ươ
nh ng tr
ng h p khác thì không d nói tr
c:
ữ
ườ
ợ
ễ
ướ
public static void
sequence(
int
n) {
while
(n != 1) {
System.out.println(n);
if
(n%2 == 0) {
// n chẵn
n = n / 2;
}
else
{
// n lẻ
n = n*3 + 1;
}
}
}
Đi u ki n c a vòng l p này là
ề
ệ ủ
ặ
n != 1, vì v y vòng l p s ti p di n đ n t n khi
ậ
ặ ẽ ế
ễ
ế ậ
n b ng 1, và đi u này khi n
ằ
ề
ế
cho đi u ki n b sai đi.
ề
ệ
ị
T i m i vòng l p, ch
ng trình in ra giá tr c a
ạ
ỗ
ặ
ươ
ị ủ n r i ki m tra xem li u s này ch n hay l . N u ch n, giá
ồ
ể
ệ ố
ẵ
ẻ ế
ẵ