Vòng lặp while trong C / C++
Trong bài viết này, codehow sẽ giới thiệu đến các bạn vòng lặp while trong C / C++. Đây cũng là một trong các loại vòng lặp được sử dụng nhiều trong lập trình.
Tương tự như vòng lặp for mà bài trước mình đã giới thiệu, các bạn có thể xem lại nhé. Vòng lặp while được sử dụng khi chúng ta muốn lặp một hành động nào đó mà chưa biết số lần lặp cụ thể.
Cấu trúc vòng lặp while trong C / C++
Vòng lặp while được sử dụng khi chúng ta muốn lặp một hành động nào đó và nó thực hiện khi điều kiện lặp đúng (tương tự như vòng lặp for).
Nếu chúng ta không xét điều kiện thật kỹ, thì rất dễ bị lặp vô hạn.
Cú pháp vòng lặp while:
while(condition) { statement(s); }
Trong đó:
- condition: Là điều kiện để vòng lặp được thực hiện, nếu điều kiện đúng thì tiếp tục lặp, nếu điều kiện sai thì thoát khỏi vòng lặp.
- statement: Đây là các câu lệnh bên trong vòng lặp, nếu điều kiện đúng thì các câu lệnh này sẽ được thực hiện.
Vòng lặp while tương tự như vòng lặp for bị khuyết thành phần thứ nhất và thành phần thứ ba, như ví dụ dưới đây.
while(condition) { statement(s); } //hoặc for(;condition;) { statement(s); }
Lưu đồ hoạt động của vòng lặp while.
Vòng lặp for và vòng lặp while trong C / C++ có gì giống và khác nhau
Trong phần này mình sẽ đưa ra các điểm giống nhau và khác nhau giữa vòng lặp for và vòng lặp while để các bạn có thể so sánh. Điều này giúp các bạn lựa chọn tốt hơn khi xử lý các chương trình, nên chọn vòng lặp nào để sử dụng.
Giống nhau
Về cơ bản thì cả hai vòng lặp được sử dụng để lặp lại một đoạn code, một hành động nào đó khi điều kiện thực hiện của nó đúng. Nếu điều kiện sai thì thoát khỏi vòng lặp.
Khác nhau
Sự khác nhau giữa vòng lặp for và vòng lặp while được thể hiện qua bảng so sánh dưới đây, các bạn có thể xem qua nhé:
Điểm khác nhau | For | While |
---|---|---|
Cú pháp | for ( init; condition; increment ) { statement(s); } |
while(condition) { statement(s); } |
Hoàn cảnh sử dụng | Nên sử dụng trong trường hợp biết trước số lần lặp. | Nên sử dụng trong trường hợp chúng ta chưa xác định được số lần lặp cụ thể. |
Điều kiện | Khi không có điều kiện thì vòng lặp for sẽ lặp vô hạn. | Khi không có điều kiện trong vòng lặp while sẽ bị lỗi biên dịch. |
init | Được khỏi tạo một lần duy nhất trong vòng lặp. | Khởi tạo khi bắt đầu mỗi vòng lặp mới. |
increment | Câu lệnh lặp được viết ở trên cùng. | Câu lệnh lặp được viết bất kỳ ở đâu trong vòng lặp. |
Vòng lặp while lồng nhau trong C / C++
Tương tự như vòng lặp for, trong vòng lặp while có chứa một hoặc nhiều vòng lặp while khác thì được gọi là lồng nhau. Tuy nhiên mình không khuyến khích các bạn sử dụng vòng lặp while lồng nhau vì nó làm chậm chương trình.
Hãy cùng nhìn ví dụ dưới đây để hiểu rõ hơn nhé.
#include <iostream> using namespace std; int main() { int i=1; while(i<=3) { int j = 1; cout << endl; while (j <= 3) { cout << "i = " << i << ", j = " << j << endl; j++; } i++; } cout<<"\n--------------------------\n"; cout<<"Chuong trinh nay duoc dang tai codehow.net"; return 0; }
Kết quả:
Vòng lặp while trong C / C++ bị lặp vô hạng
Trong vòng lặp while, khi điều kiện lặp của nó luôn đúng sẽ dẫn đến bị lặp vô hạn (không có điểm dừng). Điều này rất nguy hiểm bởi có thể làm treo máy.
Vì vậy khi sử dụng vòng lặp while, các bạn nên đặt điều kiện thật chắc chắn rằng nó có điểm dừng, tránh việc bị lặp vô hạn nhé.
Cùng mình xem ví dụ dưới đây để hiểu rõ hơn nhé.
#include <iostream> using namespace std; int main() { int i = 1; while(i==1) { cout << "Vong lap while vo han" << endl; } return 0; cout<<"\n--------------------------\n"; cout<<"Chuong trinh nay duoc dang tai codehow.net"; return 0; }
Như các bạn thấy thì mình có biến i = 1 và điệu kiện của vòng lặp while là i = 1, nghĩa là điều kiện đúng. Chương trình sẽ thực hiện bên trong vòng lặp. Lý do bị lặp vô hạn là vì bên trong chương trình không thay đổi giá trị i, nên khi nào i cũng bằng 1 (luôn đúng).
Kết quả:
Ví dụ sử dụng vòng lặp while trong C / C++
Trong phần này mình sẽ thực hiện hai ví dụ sử dụng vòng lặp while bằng hai ngôn ngữ khác nhau là C và C++, các bạn hãy tham khảo nhé.
Ví dụ 1: In bảng cửu chương sử dụng vòng lặp while trong ngôn ngữ C.
#include <stdio.h> int main () { int a, i = 1; printf("Nhap vao ban cuu chuong ban muon hien thi: "); scanf("%d", &a); printf("Ban cuu chuong %d\n", a); while(i <= 9){ printf("%d x %d = %d\n",a,i,a * i); i++; } printf("\n------------------------------\n"); printf("Chuong trinh nay duoc dang tai Codehow.net"); return 0; }
Kết quả:
Ví dụ 2: Hiển thị các phần tử trong mảng sử dụng vòng lặp while trong ngôn ngữ C++
#include <iostream> using namespace std; int main() { int numbers[6] = {1, 2, 5, -3, 9, 55}; int i = 0; cout<<"Cac phan tu trong mang la: "; while (i < 6){ cout << numbers[i] << " "; i++; } cout<<"\n--------------------------\n"; cout<<"Chuong trinh nay duoc dang tai codehow.net"; return 0; }
Kết quả:
Lời kết
Như vậy là chúng ta đã cùng nhau tìm hiểu về vòng lặp while trong C / C++. Ở bài tiếp theo mình sẽ giới thiệu đến các bạn vòng lặp do...while trong C / C++, các bạn chú ý theo dõi nhé.