Chào các bạn độc giả của Lập trình không khó, trong bài học ngày hôm nay chúng ta sẽ cũng học về vòng lặp while và vòng lặp do while. Bên cạnh vòng lặp for thì đây cũng là 2 cấu trúc vòng lặp khác được sử dụng nhiều trên thực tế. Tùy vào bài toán và mục đích chúng ta sẽ sử dụng loại vòng lặp sao cho phù hợp. Tất nhiên là 3 vòng lặp này có thể thay thế lẫn nhau, nhưng việc dùng phù hợp sẽ cho code bạn sáng sủa và dễ đọc hơn.
Video hướng dẫn vòng lặp while và do while
Vòng lặp while trong C
Vòng lặp while thường được sử dụng để lặp đi lặp lại một khối lệnh không biết trước số lần lặp. Dưới đây là cú pháp của vòng lặp while:
while (testExpression) { // statements inside the body of the loop }
Và đây là sơ đồ khối mô tả hoạt động của vòng lặp while:
- Nếu điều kiện
testExpression
đúng => còn lặp - Nếu điều kiện
testExpression
sai => thoát vòng lặp
Bài tập thực hành
#include <stdio.h> int main(){ /* In ra các số lẻ <= 10. */ int number = 1; while (number <= 10){ if(number % 2 == 1){ printf("%dt", number); } number++; } }
Kết quả chạy chương trình:
PS G:c_courcesday_19> g++ .WhileLoop.cpp -o .WhileLoop PS G:c_courcesday_19> .WhileLoop.exe 1 3 5 7 9
Vòng lặp do while trong C
Vòng lặp do … while khá giống với vòng lặp while. Tuy nhiên, nó có 1 điểm khác biệt đó là vòng lặp do … while sẽ chạy phần thân lặp ít nhất 1 lần dù cho điều kiện có đúng hay sai. Bởi vì vòng lặp do … while kiểm tra điều kiện lặp sau khi thực hiện công việc.
do { // statements inside the body of the loop } while (testExpression);
Sơ đồ khối mô tả cách hoạt động của vòng lặp do while:
- Khối lệnh được thực hiện
- Kiểm tra điều kiện lặp, nếu đúng => quay lại bước 1, nếu sai => thoát vòng lặp
Vòng lặp do … while thường được dùng để kiểm tra điều kiện nhập xuất, ví dụ:
Bài tập thực hành
/* Nhập vào một số nguyên dương từ bàn phím và in ra số đó. Nếu nhập sai, bắt nhập lại. */ #include <stdio.h> int main(){ int number; do{ printf("nNhap number = "); scanf("%d", &number); }while(number < 1); // printf("nNhap number = "); // scanf("%d", &number); // while(number < 1){ // printf("nNhap number = "); // scanf("%d", &number); // } printf("nnumber = %d", number); }
Kết quả chạy thử:
PS G:c_courcesday_19> .DoWhileLoop.exe Nhap number = -1 Nhap number = -5 Nhap number = 3 number = 3
Để lại một bình luận