Bài 20. Sử dụng vòng lặp linh hoạt

5
18045
This entry is part 18 of 69 in the series Học C Không Khó
86 / 100

Ở các bài viết trước, chúng ta đã cùng nhau tìm hiểu về vòng lặp for, vòng lặp while và vòng lặp do while. Cả 3 loại vòng lặp này hoàn toàn có thể thay thế lẫn nhau. Tuy nhiên không phải lúc nào cũng nên làm điều đó, chúng ta cần sử dụng vòng lặp linh hoạt để mã nguồn của bạn dễ đọc và đẹp hơn. Bài viết này sẽ chứng minh cho bạn 3 vòng lặp này có thể sử dụng thay thế cho nhau. Tuy nhiên, bạn nên lưu ý các ý sau để sử dụng vòng lặp hợp lý:

  1. Chúng ta thường sử dụng for khi có thể xác định trước số lần cần lặp, sử dụng while trong trường hợp không xác định được rõ số lần lặp.
  2. Sử dụng do while khi cần làm công việc rồi mới kiểm tra điều kiện, ví dụ như kiểm tra nhập giá trị hợp lệ

Video hướng dẫn sử dụng vòng lặp linh hoạt

Vòng lặp while luôn luôn kiểm tra điều kiện trước:

Vòng lặp do while luôn luôn thực hiện khối lệnh trong thân do {} trước sau đó mới kiểm tra điều kiện lặp:

Vòng lặp for cho phép bạn khởi tạo giá trị biến lặp, kiểm tra điều kiện lặp, thay đổi giá trị biến lặp trên cùng 1 dòng code:

Thực hành sử dụng vòng lặp linh hoạt

Bài tập:

/*
In ra chữ số đầu tiên của một số nguyên number nhập từ bàn phím.
Ví dụ: 12345 => 1
*/
Ý tưởng:
Ví dụ ta có n = 12345. Chừng nào n > 9 ta thực hiện phép toán n = n / 10

Lời giải sử dụng vòng lặp for

Lời giải sử dụng vòng lặp while

Lời giải sử dụng vòng lặp do … while

Nhận xét về sử dụng vòng lặp

Sơ đồ khối mô tả hoạt động của vòng lặp while
Sơ đồ khối mô tả hoạt động của vòng lặp while

Cả 3 cách trên đều cho chúng ta kết quả chính xác, một kết quả demo như sau:

Nhưng bạn thấy đó, dường như là chúng ta không biết trước số lần lặp (nó phụ thuộc vào số lượng chữ số mà bạn nhập vào). Do đó, với bài toán này chúng ta nên sử dụng vòng lặp while.

Tài liệu tham khảo

  1. https://stackoverflow.com/questions/2950931/
Sáng lập cộng đồng Lập Trình Không Khó với mong muốn giúp đỡ các bạn trẻ trên con đường trở thành những lập trình viên tương lai. Tất cả những gì tôi viết ra đây chỉ đơn giản là sở thích ghi lại các kiến thức mà tôi tích lũy được.
Subscribe
Notify of
guest
5 Bình luận
Inline Feedbacks
View all comments