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

nghĩ r ng nó không nh h

ng gì đ n ch

ng trình, và lúc có nh h

ng thì đó s là bài h c cho b n.

ưở

ế

ươ

ưở

D.3 L i logic

CH

NG TRÌNH TÔI VI T RA KHÔNG HO T Đ NG ĐÚNG.

ƯƠ

L i logic r t khó tìm, vì trình biên d ch và h th ng lúc th c thi không cung c p thông tin gì v s tr c

ệ ố

ề ự ụ

tr c. Ch có b n m i bi t r ng ch

ng trinh c n ph i th c hi n đi u gì.

ế ằ

ươ

B

c đ u tiên là t o l p m t k t n i gi a n i dung ch

ng trình và bi u hi n mà b n quan sát đ

c.

ướ ầ

ạ ậ

ộ ế ố

ươ

ượ

B n c n gi thi t v đi u th t s mà ch

ng trình đang th c hi n.

ạ ầ

ế ề ề

ậ ự

ươ

ệ B n c n t h i mình nh ng đi u sau:

ạ ầ ự ỏ

Có đi u gì mà ch

ng trình c n ph i làm nh ng d

ng nh nó không làm hay không? Hãy tìm ra đo n

ươ

ư

ườ

ư

mã l nh th c hi n tính năng đó và ch c r ng nó đ

c th c thi khi b n nghĩ r ng l ra nó ph i ch y.

ắ ằ

ượ

Có đi u gì đang di n ra mà l ra không nên có nó? Hãy tìm đo n mã trong ch

ng trình mà th c hi n

ươ

tính năng đó r i xem li u nó có đ

c th c khi trong khi đáng l thì không.

ượ

Có đo n mã nào t o ra m t hi u ng mà không nh b n mong đ i không? Hãy ch c r ng b n hi u đ

c

ệ ứ

ư ạ

ắ ằ

ượ

đo n mã nghi v n, đ c bi t khi nó liên quan đ n vi c kích ho t ph

ng th c Java. Hãy đ c tài li u v

ế

ươ

nh ng ph

ng th c, r i th b ng nh ng tr

ng h p ki m tra đ n gi n. Có khi chúng l i không làm vi c

ươ

ử ằ

ườ

ơ

mà b n nghĩ r ng chúng s làm.

Đ l p trình, b n ph i có m t mô hình t

ng t

ng v cách th c ho t đ ng c a ch

ng trình. N u b n

ể ậ

ưở

ượ

ạ ộ

ươ

ế

vi t m t ch

ng trình mà không th c hi n đúng vi c b n mong đ i, thì th

ng là v n đ không n m

ế

ươ

ệ ạ

ườ

ằ ở

ch

ng trình; nó n m mô hình t

ng t

ng c a b n.

ươ

ằ ở

ưở

ượ

Cách t t nh t đ s a mô hình t

ng t

ng cho đúng là chia ch

ng trình thành nh ng b ph n (th

ng

ấ ể ử

ưở

ượ

ươ

ườ

là các l p và ph

ng th c) r i ki m tra ch y th t ng b ph n m t cách đ c l p. M t khi b n th y s

ươ

ử ừ

ộ ậ

ấ ự

khác bi t gi a mô hình và th c t , b n s có th gi i quy t v n đ .

ự ế ạ ẽ

ể ả

ế ấ

Sau đây là m t s l i logic thông th

ng c n ph i ki m tra:

ộ ố ỗ

ườ

Luôn nh r ng phép chia nguyên làm tròn xu ng. N u b n mu n c ph n th p phân, hãy dùng

ớ ằ

ế

s

ố double.

S ph y đ ng ch là g n đúng, nên b n đ ng l thu c vào đ chính xác tuy t đ i.

ệ ố

Nói chung, hãy dùng s nguyên cho nh ng th đ m đ

c và dùng s ph y đ ng cho th đo đ

c.

ứ ế

ượ

ượ

N u b n dùng toán t gán (

ế

=) thay vì toán t b ng (

ử ằ

==) trong đi u ki n c a m t l nh

ệ ủ

ộ ệ if, while, ho c

ặ for,

b n có th s nh n m t bi u th c v m t cú pháp thì đúng nh ng v ng nghĩa thì sai.

ể ẽ

ứ ề ặ

ư

Khi b n áp d ng toán t b ng (

ử ằ

==) v i đ i t

ng, nó s ki m tra identity. N u b n có ý mu n ki m tra

ớ ố ượ

ẽ ể

ế

đ t

ng đ

ng, hãy dùng ph

ng th c

ộ ươ

ươ

ươ

ứ equals.

Đ i v i các ki u d li u do ng

i dùng đ nh nghĩa,

ố ớ

ữ ệ

ườ

equals s ki m tra identity. N u b n mu n m t kí

ẽ ể

ế

hi u khác cho t

ng đ ng, b n ph i ghi đè lên nó.

ươ

K th a có th d n đ n nh ng l i logic r t chi li, b i b n có th ch y mã l nh đ

c k th a mà không

ế ừ

ể ẫ

ế

ở ạ

ể ạ

ượ ế ừ

nh n ra nó. Hãy xem m c “Lu ng th c thi” trên.

TÔI CÓ M T BI U TH C L N VÀ GAI GÓC MÀ CH NG HO T Đ NG THEO S MONG Đ I.

Vi c vi t nh ng bi u th c ph c t p cũng t t mi n là chúng d đ c, nh ng chúng có th làm vi c g l i

ế

ứ ạ

ễ ọ

ư

ệ ỡ ỗ

g p khó khăn. Thông th

ng nên ch nh m t bi u th c thành m t lo t các l nh gán cho nh ng bi n

ườ

ỏ ộ

ế

t m th i.

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.