Có những tình huống trong khi lập trình khi cần thực hiện đi thực hiện lại một hành động nhất định hoặc giả sử trong một vòng lặp liên tục. Để thực hiện các hành động như vậy, bạn phải viết mã lặp đi lặp lại cho đến khi đạt được con số mà bạn muốn thực hiện vòng lặp.
Vòng lặp do…while, việc kiểm tra điều kiện bắt buộc diễn ra ở cuối vòng lặp. Vì việc kiểm tra bất kỳ câu lệnh khớp nào diễn ra ở cuối vòng lặp, điều này kết luận rằng toàn bộ vòng lặp sẽ được thực thi trước khi bất kỳ kiểm tra nào xảy ra. Do đó, vòng lặp do…while thực hiện lệnh ít nhất một lần kể cả trong trường hợp khi điều kiện giá trị ra là sai - nghĩa là thực hiện trước sau đó mới kiểm tra điều kiện.
Trong bài viết này, chúng ta sẽ tìm hiểu về vòng lặp do...while trong lập trình bằng JavaScript thông qua một số các ví dụ điển hình.
Sau đây là cú pháp được sử dụng cho vòng lặp do…while trong mã JavaScript:
do {
// Khối lệnh được thực thi
} while (condition);
Trong đó:
Condition là điều kiện của vòng lặp. Nếu điều kiện này đúng thì vòng lặp tiếp tục thực thi. Nếu điều kiện này sai thì vòng lặp kết thúc.
Lưu đồ thuật toán của vòng lặp do...While trong JavaScript:
Cách thức thực hiện của vòng lặp While:
● Phần thân của vòng lặp được thực hiện đầu tiên. Sau đó, điều kiện được đánh giá.
● Nếu điều kiện đánh giá là đúng (true), phần thân của vòng lặp do câu lệnh bên trong sẽ được thực hiện lại.
● Điều kiện được đánh giá một lần nữa.
● Nếu điều kiện đánh giá còn đúng (true), phần thân của vòng lặp do câu lệnh bên trong sẽ được thực hiện lại.
● Quá trình này tiếp tục cho đến khi điều kiện kiểm tra là sai (false). Sau đó, vòng lặp dừng lại.
Lưu ý:
● Nếu bạn sử dụng một biến trong điều kiện, bạn phải khởi tạo nó trước vòng lặp và tăng dần nó trong vòng lặp. Nếu không vòng lặp sẽ không bao giờ kết thúc và nó khiến chương trình bị lỗi. Điều này sẽ làm sập trình duyệt của bạn.
● Nếu điều kiện luôn đúng thì vòng lặp sẽ không bao giờ kết thúc. Điều này cũng sẽ làm sập trình duyệt của bạn. Do đó, bên trong đoạn mã mà bạn muốn thực thi, bạn phải nghiên cứu thêm vào một số câu lệnh nào đó để làm cho điều kiện dần dần trở thành bị sai.
● Luôn nhớ sử dụng dấu chấm phẩy ở cuối câu lệnh sau khi xác định chúng.
● Vòng lặp do...while tương tự như vòng lặp while. Sự khác biệt duy nhất là trong vòng lặp do…while, phần thân của vòng lặp được thực hiện ít nhất một lần.
Ví dụ 1: Tính tổng các số tự nhiên
Trước khi bắt đầu viết chương trình JavaScript bạn cần cài đặt phần mềm Notepad ++ hoặc các phần mềm, công cụ viết code khác. Viết đoạn mã sau:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title> Tính tổng các số tự nhiên bằng vòng lặp do..While JS </title>
</head>
<body>
<div style="text-align: justify;"><p><span style="color:black; font-family:Tahoma; font-size:14pt;" >
<button onclick="Tinhtong()">Tính tổng</button>
<p id="ketqua"></p>
</p></span></div>
<script type="text/javascript">
function Tinhtong () {
var num = parseInt(prompt("Nhập vào 1 số bất kỳ để tính tổng:"));
var kq = 0;
var i = 0;
do {
kq = kq + i;
i++;
} while(i<=num);
document.getElementById("ketqua").innerHTML = kq;
}
</script>
</body>
</html>
Phân tích mã:
Trong chương trình trên, người dùng được nhắc nhập một số.
Ở đây, hàm parseInt() được sử dụng vì hàm prompt() nhận đầu vào từ người dùng dưới dạng một chuỗi. Và khi các chuỗi số được thêm vào, nó sẽ hoạt động như một chuỗi. Vì vậy hàm parseInt(), được sử dụng để chuyển đổi một chuỗi số thành số. Lưu giá trị nhập vào cho biến số là num.
Xác định 2 biến số: biến i dùng cho biến đếm, biến số kq dùng cho kết quả tính tổng. Ban đầu trước khi vào vòng lặp ta gán i=0 và kq=0.
Bắt đầu vòng lặp do..while ta tính tổng theo công thức: kq=kq+i và sau mỗi lần lặp ta tăng biến đếm i lên 1 đơn vị. Sau đó kiểm tra điều kiện xem i còn thỏa mãn nhỏ hơn hoặc bằng số nhập vào num hay không ? Vòng lặp sẽ dừng nếu điều kiện không đáp ứng (False) nghĩa là i lớn hơn num.
Kết thúc vòng lặp biến kq sẽ lưu kết quả tính tổng và được in ra màn hình.
Kết quả thực thi của chương trình Tính tổng của 100 số tự nhiên đầu tiên trong JavaScript như hình ảnh dưới đây:
Ví dụ 2: Sử dụng câu lệnh do.. while trong JavaScript để tạo một trò chơi đoán số nguyên ngẫu nhiên trong khoảng từ 1 đến 10. Và bạn phải thực hiện một số lần đoán cho đến khi số của bạn khớp với số ngẫu nhiên.
Trước khi bắt đầu viết chương trình JavaScript bạn cần cài đặt phần mềm Notepad ++ hoặc các phần mềm, công cụ viết code khác. Viết đoạn mã sau:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="src/style.css">
<title> </title>
</head>
<body>
<h1 id="header"></h1>
<script type="text/javascript">
// Tạo một số bí mật từ 1 đến 10
const MIN = 1;
const MAX = 10;
var ran_num = Math.floor(Math.random() * (MAX - MIN + 1)) + MIN;
var lan_doan = 0; // để lưu trữ số lần đoán
var dau = ''; // để lưu trữ gợi ý
var num = 0;
do {
// nhận đầu vào từ người dùng và lấy số nguyên
var num = parseInt(prompt(`Vui lòng nhập một số giữa ${MIN} và ${MAX}` + dau));
// tăng số lần đoán
lan_doan++;
// kiểm tra số đầu vào với số bí mật cung cấp gợi ý nếu cần
if (num > ran_num) {
dau = ', và ít hơn ' + num;
} else if (num < ran_num) {
dau = ', và lớn hơn ' + num;
} else if (num == ran_num) {
alert(`Hoan hô! bạn đã đúng sau ${lan_doan} lần đoán.`);
}
} while (num != ran_num);
</script>
</body>
</html>
Phân tích mã:
Đầu tiên, khai báo các hằng số MIN và MAX và khởi tạo các giá trị của chúng thành 1 và 10.
Sử dụng hàm Math.random() để tạo số dấu phẩy động ngẫu nhiên có giá trị trong khoảng 0 và 1 (bao gồm 0 nhưng không bao gồm 1). Sau đó, cần sử dụng hàm Math.floor() để chuyển nó thành số nguyên.
Khai báo ba biến: lan_doan, dau và num để lưu trữ số lần đoán, gợi ý và số đầu vào của người dùng.
Sử dụng hàm prompt() để lấy đầu vào từ người dùng. Hàm prompt() trả về một chuỗi, do đó, bạn cần sử dụng hàm parseInt() để chuyển đổi nó thành một số nguyên.
Tăng số lần đoán (lan_doan) trong mỗi lần lặp lại.
Kiểm tra số đầu vào với số bí mật (ngẫu nhiên) và đưa ra gợi ý. Nếu các số được khớp, hãy hiển thị thông báo bằng hàm alert().
Thực hiện lần lặp tiếp theo cho đến khi số khớp với số bí mật.
Kết quả thực thi của chương trình đoán số bí mật trong JavaScript trên như hình ảnh dưới đây:
Tham khảo các chủ đề có liên quan khác: