VIETHANIT<br />
<br />
Chương 7. Câu lệnh điều kiện<br />
<br />
CHƯƠNG 7<br />
<br />
CÂU LỆNH ĐIỀU KIỆN<br />
7.1 Lệnh và khối lệnh<br />
7.1.1 Lệnh và quy ước lệnh trong JavaScript<br />
Cũng như trong hầu hết các ngôn ngữ khác, đơn vị làm việc cơ bản của<br />
JavaScript là câu lệnh. Trong hai chương trước, chúng ta đã làm quen với rất nhiều câu<br />
lệnh trong JavaScript. Nó có thể là kết quả của một phép gán giá trị cho một biến, có<br />
thể là lời gọi một hàm, hay biểu diễn một dạng phép tính, hoặc thậm chí là sự kết hợp<br />
của tất cả những công việc đó. Trong các ví dụ trước đây, một trong những câu lệnh<br />
mà chúng ta đã làm quen là câu lệnh khai báo, câu lệnh này không những dùng để khởi<br />
tạo (hay định nghĩa) một biến mới, mà còn có thể gán giá trị cho nó, ví dụ như:<br />
var x = 10;<br />
<br />
Như đã nói ở trên, một chương trình JavaScript là một tập hợp của các câu lệnh,<br />
các câu lệnh này có thể được tổ chức thành từng hàm (sẽ được đề cập trong chương 5).<br />
Các câu lệnh JavaScript bao gồm các từ khóa được sử dụng với cú pháp thích hợp và<br />
được kết thúc bởi dấu chấm phẩy (;). Một câu lệnh duy nhất có thể nằm trên nhiều<br />
dòng. Nhiều câu lệnh cũng có thể được viết trên một dòng duy nhất nếu mỗi câu lệnh<br />
được phân tách bởi một dấu chấm phẩy (;).<br />
7.1.2 Khối lệnh<br />
Một khối lệnh được sử dụng để nhóm các câu lệnh. Các câu lệnh này được gọi là<br />
đồng cấp và sẽ được nhóm lại bởi một cặp dấu ngoặc móc ({}).<br />
Bên trong một khối lệnh lại có thể viết lồng khối lệnh khác. Sự lồng nhau theo<br />
cách như vậy là không hạn chế.<br />
7.2 Các câu lệnh điều kiện<br />
Một câu lệnh điều kiện là một tập hợp các lệnh thi hành nếu điều kiện chỉ định là<br />
đúng. Kết quả của điều kiện xác định câu lệnh hoặc khối lệnh sẽ được thực thi.<br />
JavaScript cung cấp hai câu lệnh điều kiện: if…else và switch.<br />
7.2.1 Câu lệnh if…else<br />
Câu lệnh này dùng để kiểm tra điều kiện, nó thực thi việc tính toán trên một biểu<br />
thức, nó kiểm tra điều kiện là đúng hay sai để thực hiện khối lệnh tương ứng.<br />
Một câu lệnh if đơn giản có cú pháp lệnh như sau:<br />
if (điều kiện )<br />
{<br />
// các câu lệnh ứng với điều kiện đúng<br />
}<br />
<br />
Đây là cú pháp lệnh đơn giản, nó sẽ kiểm tra nếu điều kiện sau theo sau if là<br />
đúng thì khối lệnh sẽ được thực thi.<br />
<br />
HTML và JavaScript<br />
<br />
Trang 139<br />
<br />
VIETHANIT<br />
<br />
Chương 7. Câu lệnh điều kiện<br />
<br />
Ví dụ 7.1: Kiểm tra một số có phải là số chẵn hay không? Nếu là số chẵn thì hiển<br />
thị kết luận số chẵn.<br />
Đối với bài toán này, ta sẽ sử dụng phép chia lấy dư (%) để kiểm tra. Nếu một số<br />
thực hiện phép chia lấy dư cho 2 mà trả về kết quả là 0 thì kết luận số đó là số chẵn.<br />
Đoạn mã sau minh họa cho bài toán trên. Trong đoạn mã này, ta lưu ý đến cách<br />
sử dụng câu lệnh if:<br />
<br />
<br />
<br />
var x = 4;<br />
r=x%2;<br />
if (r==0)<br />
{<br />
document.write("so "+x+" la so chan");<br />
}<br />
<br />
<br />
<br />
<br />
Kết quả:<br />
<br />
Hình 7.1: Câu lệnh điều kiện if đơn giản<br />
Nếu trong ví dụ trên, ta thay giá trị của x = 5 thì trên màn hình sẽ không xuất<br />
hiện gì cả, nói cách khác, nó không thực hiện khối lệnh sau if, vì trong trường hợp này,<br />
biểu thức r == 0 trả về giá trị sai (false).<br />
Ta cũng có thể chỉ ra khối lệnh cần thực hiện khi điều kiện là sai (false) bằng<br />
cách dùng mệnh đề else.<br />
Cú pháp như sau:<br />
if (điều kiện)<br />
<br />
HTML và JavaScript<br />
<br />
Trang 140<br />
<br />
VIETHANIT<br />
<br />
Chương 7. Câu lệnh điều kiện<br />
<br />
{<br />
// các câu lệnh ứng với điều kiện đúng<br />
}<br />
else<br />
{<br />
// các câu lệnh ứng với điều kiện sai<br />
}<br />
<br />
Cú pháp trên được hiểu như sau: Nếu điều kiện là đúng (true) thì khối lệnh sau if<br />
sẽ được thực hiện, và ngược lại, nếu là sai (false) thì khối lệnh sau else sẽ được thực<br />
hiện.<br />
Trong cả hai cú pháp lệnh trên, điều kiện có thể là bất cứ biểu thức JavaScript<br />
nào có giá trị là true hoặc false. Khối lệnh sau if hoặc else cũng có thể là bất cứ câu<br />
lệnh JavaScript nào, kể cả các câu lệnh if được lồng thêm vào trong. Nếu chúng ta<br />
muốn sử dụng thêm một hoặc nhiều câu lệnh sau một câu lệnh if hoặc else thì ta phải<br />
đóng các câu lệnh bằng các dấu ngoặc móc ({}).<br />
Ví dụ sau minh họa cho câu lệnh điều kiện if…else. Trong ví dụ này, ta cũng xét<br />
một số là số chẵn hay lẻ, sau đó hiển thị kết quả ra màn hình.<br />
Cũng như ví dụ 3.1, ta cũng sẽ sử dụng phép chia lấy dư (%) để kiểm tra. Nếu<br />
một số thực hiện phép chia lấy dư cho 2 mà trả về kết quả là 0 thì kết luận số đó là số<br />
chẵn, ngược lại thì kết luận nó là số lẻ<br />
Đoạn mã sau minh họa cho bài toán trên.<br />
Ví dụ 7.2:<br />
<br />
<br />
<br />
var x=prompt ("enter a num: ","");<br />
r=x%2;<br />
if (r==0)<br />
{<br />
document.write("so "+x+" la so chan");<br />
}<br />
else<br />
{<br />
document.write("so "+x+" la so le");<br />
}<br />
<br />
<br />
<br />
<br />
HTML và JavaScript<br />
<br />
Trang 141<br />
<br />
VIETHANIT<br />
<br />
Chương 7. Câu lệnh điều kiện<br />
<br />
Kết quả:<br />
<br />
Hình 7.2.1: Trường hợp nhập vào một số chẵn<br />
<br />
Hình 7.2.2: Trường hợp nhập vào một số lẻ<br />
<br />
HTML và JavaScript<br />
<br />
Trang 142<br />
<br />
VIETHANIT<br />
<br />
Chương 7. Câu lệnh điều kiện<br />
<br />
7.2.2 Câu lệnh switch<br />
Khi có nhiều tùy chọn if…else thì tốt hơn ta nên sử dụng lệnh switch. Lệnh này<br />
còn được xem là lệnh case. Câu lệnh switch cho phép một chương trình định giá trị<br />
một biểu thức và thử so khớp giá trị của biểu thức với từng trường hợp. Nếu so khớp<br />
thỏa mãn thì chương trình thi hành câu lệnh tương ứng. Nếu không tìm thấy một giá trị<br />
nào trong danh sách các case của nó, khối lệnh trong phần default sẽ được thực hiện.<br />
Lệnh break dùng để thoát ra khỏi câu lệnh switch.<br />
Câu lệnh switch có dạng như sau:<br />
switch (expression){<br />
case label:<br />
statements;<br />
break;<br />
case label:<br />
statements;<br />
break;<br />
…<br />
defaul: statements;<br />
}<br />
<br />
Đầu tiên chương trình tìm một nhãn trùng khớp với giá trị biểu thức và thi hành<br />
câu lệnh tương ứng nếu so khớp thành công. Nếu nhãn so khớp không được tìm thấy,<br />
chương trình sẽ tìm đến khối lệnh trong lựa chọn default, và nếu tìm thấy sẽ thực hiện<br />
câu lệnh tương ứng. Nếu không tìm thấy câu lệnh default, thì chương trình tiếp tục thi<br />
hành câu lệnh tiếp theo sau câu lệnh switch.<br />
Câu lệnh tùy chọn break kết hợp với mỗi trường hợp đảm bảo rằng chương trình<br />
sẽ thoát khỏi lệnh switch khi câu lệnh so khớp được thi hành và tiếp tục thực thi câu<br />
lệnh tiếp theo câu lệnh switch. Nếu không sử dụng câu lệnh break thì chương trình vẫn<br />
tiếp tục thi hành lệnh kế tiếp trong câu lệnh switch.<br />
Ví dụ7.3: Trong ví dụ sau, nếu exp ước lượng đến “Bananas”, thì chương trình<br />
so khớp giá trị với trường hợp “Bananas” và thi hành câu lệnh được kết hợp. Khi bắt<br />
gặp break thì chương trình ngắt switch và thi hành câu lệnh theo sau switch. Nếu break<br />
được bỏ qua, thì câu lệnh cho trường hợp “Cherries” cũng sẽ được thi hành:<br />
<br />
<br />
<br />
document.write("1.Oranges");<br />
document.write("2.Apples");<br />
document.write("3.Bananas");<br />
document.write("4.Cherries");<br />
var exp=prompt ("Vui lòng hãy chọn một loại trái cấy trong danh sách:<br />
","");<br />
switch (exp){<br />
<br />
HTML và JavaScript<br />
<br />
Trang 143<br />
<br />