Cách dùng vòng lặp while là một trong những keyword được search nhiều nhất trên Google về chủ đề cách dùng vòng lặp while. Trong bài viết này, cachthietkeweb.vn sẽ viết bài viết Hướng dẫn cách dùng vòng lặp while mới nhất 2020.
Hướng dẫn cách dùng vòng lặp while mới nhất 2020
Rất vui khi được thường xuyên cùng tiến cùng các bạn trong kiềm hãm học lập trình online ngôn ngữ C++.Trong chương trình, chúng ta sẽ cùng nhau tìm hiểu về cấu trúc vòng lặp (Loops) – một trong những cấu trúc điều khiển được dùng thông dụng trong ngôn ngữ C++.
Cấu trúc vòng lặp khiến chương trình thực hiện lặp đi lặp lại một chuỗi các câu lệnh cho đến khi không còn thõa mãn một điều kiện nào đó.
Ví dụ:
intmain() //do A//do B 0 or more times//do C
như vậy, chúng ta hiểu rằng có một cấu trúc vòng lặp được đặt tại B, nó đủ nội lực bắt buộc chương trình thực hiện công việc B 1 lần, hoặc cũng có thể thực hiện công việc B vô số lần mà không thể chuyển sang thực hiện công việc C sau đó. Số lần thực hiện công việc B nó sẽ phụ thuộc vào biểu thức điều kiện được đặt trong cấu trúc vòng lặp.
Mình quét một ví dụ trong đời sống hằng ngày. sv A đăng kí học môn lập trình C++ tại trường đại học, nếu sinh viên A không đủ điểm để qua môn học này thì sinh viên A sẽ phải học lại. Trong trường hợp sinh viên A phải học lại lần thứ 2, chúng ta lại nói rằng nếu sv A k đủ điểm qua môn học này thì sinh viên A phải học lại… Vậy việc sinh viên A học lại là công việc sẽ được lặp đi lặp lại nhiều lần trong khi điều kiện sv A đủ điểm để qua môn vẫn còn sai.
While statements
While statement là cấu trúc vòng lặp không khó khăn nhất trong số các kiểu vòng lặp cơ bản mà ngôn ngữ C++ phân phối.
while (expression) statements;
Vòng lặp while được khái niệm bởi keyword while. Một khi vòng lặp while được thực thi, biểu thức điều kiện trong while sẽ được phân tích. Nếu biểu thức điều kiện cho trị giá đúng, các câu lệnh trong khối lệnh của vòng lặp while sẽ được thực thi.
Trong trường hợp chúng ta chỉ thực hiện 1 câu lệnh khi biểu thức điều kiện đúng, chúng ta đủ sức bỏ cặp dấu ngoặc nhọn đi.
while (expression) statement;
Nhưng mình không đề nghi điều này.
khác với if statement, một khi chấm dứt 1 lần lặp của vòng lặp while, chương trình sẽ quay lên lại vị trí khởi đầu vòng lặp while để phân tích lại biểu thức điều kiện, nếu biểu thức điều kiện luôn luôn còn cho trị giá đúng, các câu lệnh trong khối lệnh của vòng lặp while được thực hiện lại.
Ví dụ:
intmain() int score = 0;while (score < 4) cout << "Learn C++ programming language..." << endl;cout << "Enter your final score: ";cin >> score; //new scorecout << "Congratulation! You passed the exam" << endl; system("pause");return0;
Trong ví dụ trên, đến khi nào biến score không còn thõa mãn điều kiện (score < 4) thì vòng lặp while mới chấm dứt. Chúng ta cùng nhìn thấy hiệu quả chương trình:
Khi số điểm được nhập vào là 10, ngay lập tức mệnh đề (score < 4) được nghiên cứu là false, vòng lặp ngừng thực thi ngay sau đó.
Với vòng lặp while, chúng ta k thể biết trước số lần lặp lại khối công việc. Chúng ta chỉ biết rằng, vòng lặp while sẽ ngừng thực thi khi nào biểu thức điều kiện cho trị giá false.
Chúng ta đủ nội lực sử dụng thêm một biến để đếm số lần thực hiện khối lệnh của vòng lặp while:
int score = 0;int count = 0;while (score < 4) count++;cout << "Learn C++ programming language..." << endl;cout << "Enter your final score: ";cin >> score; //new scorecout << "Congratulation! You passed the exam after " << count << " times" << endl;
Infinite loops
Vòng lặp vô tận xảy ra trong trường hợp k có sự tác động đến biểu thức điều kiện của vòng lặp while và nó luôn luôn đúng. Ví dụ:
int count = 0;while (count < 10) cout << count << " ";
Biến count trong trường hợp này k bị ai tác động đến trị giá, nên nó vẫn là 0 và luôn bé hơn 10. Dó đó, điều kiện mãi mãi đúng và vòng lặp không thể kết thúc được.
Chúng ta đủ nội lực cố ý khai báo vòng lặp vô hạn bằng mẹo sau:
while (true) //This loop will be executed forever
mẹo duy nhất để thoát ra khỏi vòng lặp vô tận là dùng keyword break, return, goto,…
Loop variables
Thông thường, chúng ta mong muốn vòng lặp thực hiện công việc trong một số lần có hạn chế. Để sử dụng điều này, chúng ta thường dùng thêm các biến vòng lặp (loop variable), những biến này thường được dùng cho mục đích đếm số lần thực hiện khối lệnh của vòng lặp.
Mình get ví dụ chương trình đếm ngược từ 10 về 0 giống như sau:
int count = 10;while (count >= 0) _sleep(1000); //stop 1000 milisecondsif (count == 0)cout << "Finished" << endl;elsecout << count << " "; count--;
Kết quả:
10 9 8 7 6 5 4 3 2 1 Finished
Tại cuối vòng lặp, mình thực hiện trừ trị giá của biến count đi 1, điều này sẽ kéo đến mệnh đề (count >= 0) sẽ sai trong tương lai. giống như vậy, vòng lặp while này có điểm dừng.
Nest while loops
Cũng tương tự giống như if statement hay switch case statement, chúng ta có thể đặt vòng lặp while bên trong khối lệnh của vòng lặp while không giống.
int outer = 1;while (outer <= 5) int inner = 1;while (inner <= 5) cout << inner << " "; inner++; cout << endl; // print a newline at the end of each rowouter++;
Cứ mỗi lần lặp của vòng lặp while ngoài, chương trình lại thực hiện tất cả vòng lặp while trong, sau đó thực hiện tăng biến outer lên 1 giá trị. hiệu quả chương trình sẽ là:
1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
tổng kết
nghiên cứu về vòng lặp while giúp chúng ta định hình tìm hiểu về cấu trúc vòng lặp trong ngôn ngữ C/C++. Cấu trúc vòng lặp while khá ngắn gọn, easy hiểu. Chúng ta thường dùng vòng lặp while cho các trường hợp số lần lặp lại công việc là chưa biết trước.
Bài tập cơ bản
1/ Viết chương trình tính tổng các số nguyên được nhập từ bàn phím cho đến khi nhập số 0 thì dừng.
2/ Viết chương trình in ra toàn bộ ký tự thuộc bảng mã ASCII từ 0 đến 127.
3/ Viết chương trình sử dụng vòng lặp while để chương trình in ra giống như sau:
1 1 2 1 2 3 1 2 3 4 1 2 3 4 5
P/s: Hẹn gặp lại các bạn trong bài học kế tiếp trong kiềm hãm học lập trình C++ hướng thực hành.
Mọi quan niệm đóng góp hoặc thắc mắc đủ nội lực đặt câu hỏi trực tiếp tại forum
nguồn: daynhauhoc.com