Vòng lặp
Last updated
Last updated
Việc lặp các thao tác trong lập trình được gọi là vòng lặp, và là một trong những thành phần quan trọng nhất của lập trình. Vòng lặp sẽ có 1 điều kiện để duy trì và khi điều kiện đó không được đảm bảo thì vòng lặp sẽ kết thúc.
Đối với Javascript cơ bản, có 2 cách để tạo vòng lặp: vòng lặp for
và vòng lặp while
. Cả 2 đều bao gồm 2 thành phần: điều kiện để duy trì vòng lặp, và thân vòng lặp chứa các thao tác sẽ được lặp.
Vòng lặp for trong javascript là vòng lặp được dùng để lặp một mảng hoặc một danh sách nằm trong khoảng (min -> max). Đây là vòng lặp có thứ tự và phải biết trước tổng số lần lặp nên thường dùng trong những bài toán liệt kê và xử lý các phần tử trong danh sách mảng.
Vì ta đang học JS căn bản nên trong bài này mình chỉ làm những bài tập đơn giản liên quan đến mảng trong javascript thôi nhé. Trước tiền ta tìm hiểu cấu trúc của nó rồi đi vào vấn đề chính sau:
Trong đó:
var i = 0;
là khai báo biến điều khiển vòng lặp i
(i = 0)
là điểm bắt đầu lặp (lặp từ 0)
(i < 100)
là điều kiện dừng vòng lặp, nghĩa là lặp nếu i < 100
. Bạn có thể dùng một điều kiện bất kì thông qua các toán tử miễn là nó trả về true hoặc false như (i <= 100, i == 100)
(i++)
là tăng bước nhảy, bạn có thể dùng công thức khác như i+=2, i-=2, i--, ...
Như ví dụ trên thì ta sẽ có 100 vòng lặp từ 0 -> 99
Vòng lặp while và do while dùng để lặp với trường hợp tá không biết chính xác số lần lặp là bao nhiêu và trường hợp điều kiện dừng vòng lặp quá phức tạp, điều này hoàn toàn khác với vòng lặp for. Khi sử dụng vòng lặp while rất dễ bị lặp vô hạn nếu bạn không xử lý logic.
Trước tiên hãy xem một chút về cấu trúc của vòng lặp này như sau:
Trong đó condition
là điều kiện dừng vòng lặp, nếu condition
đúng thì vòng lặp sẽ được thực thi cho tới khi condition
có giá trị sai. Chính vì vậy nếu condition luôn luôn đúng thì vòng lặp sẽ dẫn tới lặp vô hạn.
Trong ví dụ này biến i
có giá trị khởi đầu là i = 1
, điều kiện dừng vòng lặp là i <= 10
. Như vậy sau mỗi bước lặp nếu ta không tăng i
lên thì vòng lặp sẽ dẫn tới lặp vô hạn.