Vòng lặp while và do while trong C++

2

Giới thiệu vòng lặp

Trong C++ ngoài cấu trúc for như ở bài viết trước , C++ còn có một số vòng lặp thông dụng khác và ad sẽ cùng mọi người đi tìm hiểu về vòng lặp while và do while trong C++

Cấu trúc vòng lặp while


while (điều kiện)
{
// câu lệnh
}

Không giống như for, trong vòng lặp này không có Initialization statement và Update statement nên ta cần khai báo chúng để tránh lặp vô hạn.

Đoạn code trong vòng có thể chứa các biểu thức logic, cấu trúc điều kiện (if … else, switch … case) thậm chí là cả những vòng lặp với cấu trúc lặp khác nhau nên có thể tạo ra các vòng lặp lồng nhau.

Nguyên tắc của vòng lặp

Cũng giống như for, vòng lặp sẽ kết thúc nếu giá trị điều kiện về false.

 

Sơ đồ hoạt động như sau:

vòng lặp

While thường được sử dụng trong các vòng lặp khi chúng ta chưa biết các lệnh lặp sẽ được thực hiện bao nhiêu lần, đây là một ví dụ về việc sử dụng.

http://pastebin.com/raw/ruEWYj0d

 

Cấu trúc vòng lặp do…while

Cấu trúc chung như sau:


do
{
// Câu lệnh
} while (điều kiện);

do…while khác với cấu trúc while, biểu thức đặt sau câu lệnh while nên sẽ được thực hiện ít nhất một lần dù cho while sau này có thể false ngay lập tức

Nguyên tắc

Sơ đồ hoạt động như sau:

vòng lặp

Thường thì ad sử dụng do…while để kiểm tra giá trị được nhập vào

Chương trình sau đây là một ví dụ:


int main()
{
int thang;
do
{
cin >> thang;
} while (thang < 1 || thang > 12);

return 0;
}

Một việc kì quặc nào đó cũng có thể được làm với do while 😀 :


#include <iostream>
using namespace std;

int main()
{
int i;

do
{
cin >> i;
} while(i <= 0);

int a;
int s = 0;

do
{
cin >> a;
} while(s += a, --i);

return 0;
}

Chương trình tính tổng i số nguyên từ bàn phím.

Lưu ý

Break và continue cũng có thể được sử dụng trong vòng lặp này, xem thêm về break và continue tại https://anonymousvn.org/vong-lap-for-visual-c.hav#Luu_y_khi_su_dung_vong_lap_for

Sau dòng lệnh while cũng không cần “;”.

2 Comments
  1. […] Vòng lặp while và do while trong C++ […]

  2. […] Vòng lặp while và do while trong C++ […]

Leave A Reply

Your email address will not be published.