Trong bài trước, mình đã giới thiệu tới bạn vòng lặp while. Hôm nay, chúng ta sẽ tiếp tục tìm hiểu một vòng lặp nữa cũng gần tương tự vòng lặp while, đó là vòng lặp do … while.
Vòng lặp do … while
Vòng lặp do … while là gì?
Vòng lặp do … while cũng tương tự vòng lặp while là có khả năng thực hiện một khối lệnh nào đó nhiều lần. Nhưng khác while ở chỗ là do … while sẽ thực hiện khối lệnh con trước rồi sau đó mới kiểm tra điều kiện lặp sau. Vì vậy mà do … while sẽ chắc chắn luôn thực hiện khối lệnh con của nó ít nhất 01 lần.
Sơ đồ hoạt động của vòng lặp do … while
Để hiểu rõ hơn về hoạt động của vòng lặp do … while, thì bạn hãy xem lưu đồ dưới đây nhé:Nhìn lưu đồ trên thì câu chuyện có vẻ rõ ràng hơn một chút rồi phải không nào? Theo thứ tự thực hiện thì chắc chắn khối lệnh sẽ được thực hiện trước. Vì thế dù điều kiện lặp có đúng hay sai thì khối lệnh cũng sẽ được thực hiện ít nhất 01 lần. Đó là khác biệt lớn so với vòng lặp while mà bạn cần lưu ý.
Cú pháp vòng lặp do … while
Từ cú pháp trên, bạn có thể thấy cấu trúc do … while có cách viết khá khác so với cấu trúc while. Cấu trúc này bổ sung thêm từ khoá do, biểu thức while được đưa xuống cuối và có thêm dấu “;” sau cùng. Đó là những đặc điểm bạn cần lưu ý vì theo kinh nghiệm của mình, các bạn mới học rất hay quên dấu “;” cuối cấu trúc lặp do … while.
Ví dụ minh hoạ
Để giúp bạn hiểu rõ hơn về vòng lặp do … while và hiểu rõ hơn sự khác nhau giữa vòng lặp while và do … while, thì mình sẽ thực hiện một ví dụ như sau.
Viết chương trình nhập và kiểm tra tính hợp lệ của mật khẩu. Nếu nhập mật khẩu sai thì yêu cầu nhập lại, chương trình chỉ dừng khi nhập đúng mật khẩu. Trong ví dụ này, bạn hãy tự cho một ký tự là mật khẩu đúng.
Từ yêu cầu trên, chúng ta sẽ xây dựng chương trình như sau:
Mình hy vong đoạn chương trình trên không quá khó để hiểu. Bạn có thể dễ dàng nhận thấy sự khác biệt về cách viết so với vòng lặp while. Khối lệnh được đặt trước điều kiện lặp, vì thế mà khối lệnh sẽ được thực hiện trước. Điều này là hợp lý, vì nếu không nhập mật khẩu trước thì sẽ không có dữ liệu kiểm tra. Nếu bạn dùng vòng lặp while thì chắc chắn không thể viết ngắn gọn được như thế này.
Chạy thử chương trình, chúng ta sẽ được kết quả như sau:
Tổng kết
Qua bài viết này, mình hy vọng bạn sẽ học thêm được một vòng lặp mới và tự mình phân biệt được sự khác nhau giữa while và do … while để có thể lựa chọn cho mình giải pháp lặp phù hợp cho từng bài toán.