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

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á

ệ ố

ẻ ế