Ở 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ý:
- 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.
- 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:
while (condition) { //gets executed after condition is checked }
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:
do { //gets executed at least once } while (condition);
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:
for (int x = 0; x < 100; x++) { //executed until x >= 100 }
Thực hành sử dụng vòng lặp linh hoạt
Bài tập:
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
#include <stdio.h> int main(){ int number; printf("nNhap number = "); scanf("%d", &number); int last = number; // Vòng lặp for for(;last > 9;){ last /= 10; // last = last / 10 } // Hoặc // int last = number; // for(;last > 9;last /= 10){ // } printf("Chu so dau tien cua %d la %d", number, last);
Lời giải sử dụng vòng lặp while
#include <stdio.h> int main() { int number; printf("nNhap number = "); scanf("%d", &number); // Vòng lặp for // Vòng lặp while int last = number; while (last > 9) { last /= 10; } printf("Chu so dau tien cua %d la %d", number, last); // Vòng lặp do while }
Lời giải sử dụng vòng lặp do … while
#include <stdio.h> #define true 1 int main(){ int number; printf("nNhap number = "); scanf("%d", &number); // Vòng lặp for // Vòng lặp while int last = number; // Vòng lặp do while do{ if(last < 10){ printf("Chu so dau tien cua %d la %d", number, last); return 0; // Thoát chương trình } last /= 10; }while(true); // luôn luôn đúng }
Nhận xét về sử dụng vòng lặp
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:
Nhap number = 12345 Chu so dau tien cua 12345 la 1
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.
Để lại một bình luận