Giải sử, cần viết chương trình xuất các số từ 1 đến 10. Đơn giản là sử dụng 10 câu lệnh cout<<. Nhưng cần viết chương trình xuất các số từ 1 đến 1000. Sử dụng 1000 câu lệnh cout<< thì sẽ là một pha xử lý thật “cồng kềnh”. Giải pháp là sử dụng cấu trúc lặp để thực hiện các công việc mang tính lặp lại khi thỏa mãn điều kiện nào đó. Có 3 lệnh lặp trong C++ là for, while, do…while. Bài này sẽ giới thiệu cách sử dụng vòng lặp while. while (<điều kiện lặp>) { //code block }với <điều kiện lặp> thường là biểu thức với các toán tử quan hệ, kết quả trả về là true (0) hoặc false (0). Nguyên lý hoạt động của vòng lặp while như sau:Kiểm tra <điều kiện lặp>, nếu <điều kiện lặp> đúng (true) thì dòng lệnh trong while sẽ được thực thi. Quá trình kiểm tra <điều kiện lặp> và thực thi dòng lệnh trong while sẽ chấm dứt cho đến khi <điều kiện lặp> sai (false). Tức là, nếu bất cứ khi nào <điều kiện lặp> sai (false) thì vòng lặp while sẽ chấm dứt. Chương trình C++ in ra số từ 1 đến 5 sử dụng vòng lặp while#include <iostream> using namespace std; int main() { int i = 1; // while loop from 1 to 5 while (i <= 5) { cout << i << " "; ++i; } return 0; }Kết quả1 2 3 4 5Chương trình trên thực hiện các lần lặp trong while như sau:
Câu lệnh while có thể lồng nhauif (n < 10 && m < 20) { while (n >= 1) { while (m >= 1) { cout<<m<<endl; m--; } n--; } }Câu lệnh while có thể không thực hiện lần nào do điều kiện lặp ngay từ lần đầu đã không thỏa mãnint n = 1; while (n > 10) { cout<<n<<endl; n--; }Không được thêm “;” ngay sau lệnh whileint n = 0; while (n < 10);//while sẽ không thực thi được { cout<<n<<endl; n++; } while (n < 10) { };//while sẽ không thực thi được { cout<<n<<endl; n++; }Câu lệnh while có thể bị lặp vô hạnint n = 1; while (n < 10)//n=1, n-- thì điều kiện lặp vô hạn { cout<<n<<endl; n--; } n = 1; while (n < 10){//n=1 thì điều kiện lặp vô hạn cout<<n<<endl; }Lưu ý: Khi sử dụng vòng lặp while phải tránh sai cú pháp và điều kiện lặp vô hạn. Bài trước và bài sau trong môn học
Vòng lặp while được sử dụng để thực thi nhiều lần một đoạn chương trình, khi một điều kiện vẫn còn đúng. Vòng lặp while thường được sử dụng khi số lần lặp không được xác định trước (Không cố định). Cú pháp: while (<Điều kiện lặp>) { <Khối lệnh lặp lại> } Ta có thể thấy được luồng thực hiện của chương trình thông qua sơ đồ khối sau Trước tiên chương trình sẽ tính giá trị của biểu thức Điều kiện lặp, nếu giá trị của biểu thức logic là đúng thì câu lệnh trong thân của while sẽ được thực hiện, sau khi thực hiện xong nó tính lại giá trị của biểu thức logic, nếu giá trị đúng nó lại tiếp tục thực hiện lệnh trong thân while cho đến khi giá trị của biểu thức sai.
public class Thaycacac { public static void main(String[] args) { int value = 3; while (value < 10) { System.out.println("Giá trị = " + value); value = value + 2; } } }
Giá trị 3
do { <Khối lệnh lặp lại> } while(<Điều kiện lặp>) sự hoạt động của cấu trúc này được thể hiện qua sơ đồ sau Nhìn vào sơ đồ này ta thấy sự hoạt động của nó như sau:
Ví dụ: public class Thaycacac { public static void main(String[] args) { int value = 3; do { System.out.println("Giá trị = " + value); value = value + 3; } while (value < 10); } }
Giá trị 3
|