Trong JavaScript, vòng lặp for được sử dụng để thực thi một đoạn mã lặp đi lặp lại cho đến khi điều kiện xác định được đáp ứng. Cú pháp cơ bản của nó như sau:
for (biểu thức khởi tạo; biểu thức điều kiện; biểu thức cập nhật) { // Thân vòng lặp (mã cần được thực thi lặp lại) } Biểu thức khởi tạo: Được thực thi một lần trước khi vòng lặp bắt đầu, thường được sử dụng để khai báo biến đếm. Biểu thức điều kiện: Được kiểm tra trước mỗi lần lặp, nếu là true, vòng lặp tiếp tục; nếu là false, vòng lặp kết thúc. Biểu thức cập nhật: Được thực thi một lần sau mỗi lần lặp, thường được sử dụng để tăng hoặc giảm giá trị biến đếm.
Cần lưu ý đặc biệt rằng, ba biểu thức này phải được ngăn cách bằng dấu chấm phẩy, không phải dấu phẩy. Ngoài ra, sau dấu ngoặc đơn của câu lặp for không nên thêm dấu chấm phẩy, vì điều này sẽ thay đổi phạm vi kiểm soát của vòng lặp for.
Ngoài ra, vòng lặp for bắt đầu từ bước khởi tạo, sau đó kiểm tra điều kiện. Nếu điều kiện được đáp ứng, mã trong thân vòng lặp sẽ được thực thi, sau đó thực hiện biểu thức cập nhật. Quá trình này sẽ lặp lại cho đến khi điều kiện không còn được đáp ứng. Trong suốt quá trình này, "biểu thức 1" chỉ được thực thi một lần ở đầu, và trong các lần lặp tiếp theo sẽ bị bỏ qua.
Để minh họa, hãy xem một ví dụ đơn giản
Tính tổng các số giữa hai số cho trước:
<body>
<script>
function tinhTongSo(a = 0, b = 0){
let tong = 0
for(let dem = a; dem < b; dem++){
tong += dem
}
document.write(tong)
}
let soDau = +prompt('Nhập số đầu tiên')
let soCuoi = +prompt('Nhập số cuối cùng')
tinhTongSo(soDau, soCuoi)
</script>
</body>
Trong lập trình, vòng lặp lồng nhau là một cấu trúc phổ biến, cho phép nhúng một vòng lặp hoàn chỉnh bên trong một vòng lặp khác. Ví dụ như vòng lặp for kép, tức là một vòng lặp for chứa một vòng lặp for khác. Về lý thuyết, số tầng lồng của vòng lặp for có thể rất nhiều, nhưng để đảm bảo tính dễ đọc và hiệu suất thực thi, thường không nên vượt quá 3 tầng.
Ngôn ngữ Python cũng hỗ trợ vòng lặp lồng nhau, bạn có thể nhúng một vòng lặp for bên trong một vòng lặp for khác và ngược lại. Tương tự, ngôn ngữ C cũng cho phép sử dụng một vòng lặp bên trong một vòng lặp khác.
Cụ thể về quá trình thực thi, lấy vòng lặp for kép làm ví dụ: đầu tiên giải biểu thức 1, tức là gán giá trị ban đầu cho biến i, sau đó thực hiện một lần vòng lặp ngoài, tất cả các vòng lặp bên trong được thực thi (một lần vòng lặp ngoài, tất cả các vòng lặp for bên trong được thực thi xong rồi mới thực hiện một lần vòng lặp ngoài), cho đến khi vòng lặp ngoài kết thúc.
Cần lưu ý rằng, việc lồng nhiều tầng vòng lặp for có thể làm giảm hiệu suất thực thi mã, do đó cần cân nhắc kỹ lưỡng khi sử dụng.
Ví dụ nhỏ: Tạo bảng cửu chương
<style>
phanTu{
color: rgb(4, 4, 18);
display: inline-block;
border: 5px 10px;
margin: 3px;
border-radius: 5px;
box-shadow: 2px 2px 2px rgb(11, 11, 11);
}
</style>
</head>
<body>
<script>
for(let hang=1;hang<=9;hang++){
for (let cot = 1; cot<=hang; cot++) {
document.write(`<phanTu>${hang} * ${cot}=${hang * cot}</phanTu>`)
}
document.write('<br>')
}
</script>
</body>
Khi sử dụng vòng lặp for, không nên lạm dụng vòng lặp, vì điều này sẽ làm tăng thời gian chạy và độ phức tạp của chương trình.