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

length không nh n đ i s truy n vào, và tr l i m t s nguyên, trong tr

ng h p này b ng 6. L u ý r ng

ố ố

ả ạ

ộ ố

ườ

ư

vi c có m t bi n trùng tên v i ph

ng th c là hoàn toàn h p l (m c dù đi u này có th gây nh m l n

ế

ươ

ợ ệ

đ i v i ng

i đ c mã l nh).

ố ớ

ườ ọ

Đ tìm ch cái cu i cùng trong chu i, b n có th b xui khi n đ th theo cách làm sau:

ể ị

ế

ể ử

int

length = fruit.length();

char

last = fruit.charAt(length);

// SAI!!

Cách này không có tác d ng. Lý do là không có ch cái th 6 nào trong

"banana". Vì ta đã b t đ u đ m

ắ ầ

ế

t 0, nên sáu ch cái trong chu i đ

c đ m t 0 t i 5. Đ l y ch cái cu i cùng, ta ph i tr

ỗ ượ ế

ể ấ

ả ừ length đi

m t.

int

length = fruit.length();

char

last = fruit.charAt(length-1);

8.3 Duy t chu i

M t công vi c th

ng làm v i m t chu i là b t đ u t đi m đ u c a chu i, l n l

t ch n t ng kí t ,

ườ

ắ ầ ừ ể

ầ ủ

ỗ ầ ượ

ọ ừ

th c hi n m t s thao tác đ i v i ch cái đó, và công vi c đ

c ti p di n cho các ch cái còn l i đ n h t

ộ ố

ố ớ

ệ ượ

ế

ạ ế

ế

chu i. Ki u x lý nh th này đ

c g i là

ư ế

ượ ọ

duy t

. M t cách t nhiên đ th c hi n vi c duy t là dùng

ể ự

vòng l p

while

:

int

index = 0;

while

(index < fruit.length()) {

char

letter = fruit.charAt(index);

System.out.println(letter);

index = index + 1;

}

Vòng l p này đ duy t chu i và hi n th t ng ch cái trên m t dòng riêng. L u ý đi u ki n l p là

ị ừ

ư

ệ ặ

index

< fruit.length()

, nghĩa là khi

index

b ng v i chi u dài c a chu i, thì đi u ki n b vi ph m, và ph n

thân c a vòng l p không đ

c th c hi n. Kí t cu i cùng đ

c truy c p đ n s t

ng ng v i ch

ượ

ự ố

ượ

ế ẽ ươ

s

fruit.length()-1

.

Tên c a bi n vòng l p là

ế

index (có nghĩa là “ch s ”). M t

ỉ ố

ch s

ỉ ố là m t bi n hay giá tr đ c dùng đ ch

ế

ị ượ

ể ỉ

đ nh m t thành viên c a m t t p h p đ

c x p th t , trong tr

ng h p này là chu i các kí t . Ch s có

ộ ậ

ượ ế

ứ ự

ườ

ỉ ố

nhi m v ch đ nh thành viên nào b n c n bi t (vì v y mà nó có tên “ch s ”).

ụ ỉ ị

ạ ầ

ế

ỉ ố

8.4 L i th c thi

Tr v M c

ở ề ụ 1.3.2 tôi đã nói t i các l i th c thi, nh ng l i không xu t hi n đ n t n khi ch ng trình b t

ế ậ

ươ

đ u ch n. Trong Java, nh ng l i th c thi đ

c g i là các

ượ ọ

bi t l

ệ ệ.

Có th b n không th y nhi u l i th c thi, song vì ta ch a th c hi n nhi u thao tác có kh năng gây nên

ể ạ

ề ỗ

ư

nh ng l i lo i này. Và bây gi ta s gây l i. N u b n dùng ph

ng th c

ế

ươ

ứ charAt r i cung c p m t ch s

ỉ ố

là s âm ho c l n h n

ặ ớ

ơ length-1, Java sẽ phát ra m t bi t l . B n có th hình dung vi c “phát” bi t l

ệ ệ ạ

ệ ệ

cũng nh phát ra m t c n gi n d .

ư

ộ ơ

Khi đi u này x y đ n, Java in ra m t thông báo l i có ghi ki u bi t l và m t

ế

ệ ệ

l n v t ngăn x p

ế

ế , trong

đó có bi u th nh ng ph

ng th c đang ho t đ ng khi có bi t l x y ra. Sau đây là m t ví d :

ươ

ạ ộ

ệ ệ ả

public class

BadString {

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.