Lesson 7: Điều kiện, vòng lặp
Last updated
Last updated
Trong tất cả ngôn ngữ lập trình, điều kiện và vòng lặp có tác dụng cực kỳ lớn trong việc triển khai chương trình, hệ thống; đối với thuật toán, còn được coi là linh hồn.
Khi gặp một điều kiện gì đó, chương trình sẽ thực hiện logic, câu lệnh do lập trình viên cài đặt
Giả sử bài toán:
Câu điều kiện If else là câu lệnh đơn giản, phổ biến nhất cho các ngôn ngữ lập trình, dựa vào tính đúng, sai của giá trị với cú pháp:
Trong việc xét điều kiện:
0 - false
null - false
undefined - false
"" - false (string rỗng)
Javascript
Typescript
Kết quả
Hãy thử đổi isRaining
thành false
và xem kết quả trên console
Nhận xét:
Bài toán vừa rồi, đã dựa vào dữ liệu và xem xét điều kiện để thực thi lệnh mà lập trình viên cài đặt với câu lệnh if else
Hoàn toàn chỉ cần if
mà không cần else
, tuỳ thuộc vào các bài toán và logic lập trình viên xử lý.
else
luôn nằm sau if
Khi một khối lệnh được thực hiện trong if hoặc else, thì các khối lệnh khác sẽ không được thực hiện
else if
else if
là câu lệnh cho phép xem xét thêm điều kiện
Javascript
Typescript
else if
nằm ở giữa if
và else
Tuỳ thuộc vào bài toán mà ta có thể tối ưu trong việc viết thêm điều kiện
Cấu trúc điều kiện switch-case
được sử dụng khi có nhiều giá trị cụ thể để kiểm tra, giúp mã nguồn trở nên gọn gàng hơn thay vì sử dụng nhiều câu lệnh if-else
.
Cú pháp
Switch-case không so sánh === (3 dấu bằng).
Lệnh break
sẽ giúp thoát khỏi cấu trúc khi đạt được kết quả tương ứng.
Nếu không có break
, lệnh sẽ được thực thi tiếp cho các giá trị tiếp theo.
Khối lệnh default
sẽ được thực hiện khi không giá trị nào khớp
Giả sử một bài toán: Nhận đầu vào 1 số, in ra số ngày trong tuần tương ứng
0 - Chủ Nhật 1 - Thứ Hai 2 - Thứ Ba 3 - Thứ Tư 4 - Thứ Năm 5 - Thứ Sáu 6 - Thứ Bảy
Ví dụ:
Javascript
Typescript
Với TS, khi biểu thức có kiểu dữ liệu gì, thì các giá trị so sánh bắt buộc phải cùng kiểu dữ liệu.
Ví dụ:
Toán tử 3 ngôi (hay còn gọi là toán tử điều kiện, ternary operator) là một cú pháp ngắn gọn để thực hiện một câu lệnh if...else
trong JavaScript. Toán tử này cho phép bạn đưa ra các điều kiện và thực hiện một hành động khác nhau tùy thuộc vào điều kiện có đúng hay không.
Cú pháp:
condition
: Điều kiện cần kiểm tra. Nếu đúng (true), expressionIfTrue
sẽ được thực thi.
expressionIfTrue
: Biểu thức sẽ thực thi và trả về nếu điều kiện là đúng.
expressionIfFalse
: Biểu thức sẽ thực thi và trả về nếu điều kiện là sai.
Ví dụ:
Vòng lặp là một cấu trúc lập trình cho phép thực thi một khối mã nhiều lần dựa trên một điều kiện nào đó.
Để hiểu dễ hơn, bản chất sử dụng vòng lặp là khi có những logic code có tính chất lặp, vòng lặp sẽ giúp liên tục làm đi làm lại đoạn logic nào đó dựa trên điều kiện nào đó
Ví dụ bài toán:
Bạn bị người yêu dỗi, yêu cầu chat xin lỗi 1 nghìn lần
trong vòng 1 phút, nếu không thực hiện được, bạn sẽ bị dỗi 1 tuần! Người thường có thể không làm gì được, nhưng lập trình viên hoàn toàn có thể.
Cấu trúc của lời xin lỗi như sau:
Số lần - lời xin lỗi
Ví dụ:
Cấu trúc vòng lặp:
Khởi tạo: Xác định, khai báo biến đếm ban đầu (ví dụ: let i = 0
).
Điều kiện: Điều kiện để tiếp tục lặp (ví dụ: i < 10
).
Tăng/giảm: Giá trị thay đổi sau mỗi lần lặp (ví dụ: i++
để tăng 1).
Ứng dụng giải quyết bài toán xin lỗi người yêu:
Javascript/Typescript
Giải thích:
let i = 1;
(Khởi tạo biến i
):
Đây là phần khởi tạo, nó khai báo một biến i
và gán giá trị ban đầu là 1
.
i
sẽ được sử dụng làm biến đếm trong vòng lặp, bắt đầu từ giá trị 1.
i <= 1000;
(Điều kiện tiếp tục vòng lặp):
Đây là điều kiện để vòng lặp tiếp tục chạy.
Vòng lặp sẽ tiếp tục lặp chừng nào giá trị của i
nhỏ hơn hoặc bằng 1000
.
Khi i
vượt quá 1000
, vòng lặp sẽ dừng lại.
i++
(Tăng giá trị biến i
):
Đây là phần tăng biến i
sau mỗi lần lặp.
Mỗi lần vòng lặp chạy xong một chu kỳ, i
sẽ tăng thêm 1 đơn vị.
console.log(`${i} - Anh xin lỗi em`);
(In ra kết quả trong mỗi lần lặp):
Đây là khối mã được thực thi trong mỗi lần lặp.
console.log
được sử dụng để in ra màn hình.
Template literal: ${i}
chèn giá trị của biến i
vào chuỗi.
Kết quả sẽ là: "1 - Anh xin lỗi em"
, "2 - Anh xin lỗi em"
, ..., đến "1000 - Anh xin lỗi em"
.
Kết quả:
Vòng lặp for là vòng lặp cơ bản và phổ biến nhất cho tất cả các ngôn ngữ lập trình. Ngoài ra, còn nhiều các vòng lặp khác như:
while
do ... while
Hãy dành thời gian tìm hiểu thêm để biết được trường hợp nào nên sử dụng vòng lặp nào!
break
và continue
là hai từ khóa quan trọng được sử dụng để kiểm soát luồng thực thi trong các vòng lặp. Chúng cho phép điều chỉnh cách vòng lặp hoạt động mà không cần tuân theo luồng thông thường.
break
được sử dụng để thoát khỏi vòng lặp hoàn toàn khi một điều kiện nhất định được đáp ứng. Khi gặp break
, vòng lặp sẽ dừng ngay lập tức.
Ví dụ:
Như ví dụ trên. về lý thuyết vòng lặp sẽ chạy 10 lần, tuy nhiên, trong logic đã có điều khiển nếu tới lần lặp thứ 5, sẽ dừng lại vòng lặp.
continue
được sử dụng để bỏ qua phần còn lại của vòng lặp hiện tại (tức các đoạn logic còn lại) và chuyển sang lần lặp tiếp theo.
Khi gặp continue
, chương trình sẽ bỏ qua các câu lệnh sau nó trong vòng lặp và quay lại điều kiện lặp để kiểm tra tiếp.
Ví dụ:
Trên đây là những kiến thức căn bản của Điều kiện và Vòng lặp trong Javascript, những kiến thức trên có ở mọi ngôn ngữ lập trình và ứng dụng rất lớn trong thực tế, không những vậy, còn ứng dụng rất nhiều cho các bài học sau và nâng cao hơn, hãy chăm chỉ tập luyện và thành thạo chúng!