Câu lệnh While điều kiện dữ câu lệnh thực hiện như thế nào

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 5

Chương trình trên thực hiện các lần lặp trong while như sau:

Lần lặpBiến iĐiều kiện lặp i<=5Thực thi
1i=1trueIn ra 1 và tăng i lên 2
2i=2trueIn ra 2 và tăng i lên 3
3i=3trueIn ra 3 và tăng i lên 4
4i=4trueIn ra 4 và tăng i lên 5
5i=5trueIn ra 5 và tăng i lên 6
6i=6falseVòng lặp chấm dứt

Câu lệnh while có thể lồng nhau

if (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ãn

int n = 1; while (n > 10) { cout<<n<<endl; n--; }

Không được thêm “;” ngay sau lệnh while

int 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ạn

int 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đ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

Câu lệnh While điều kiện dữ câu lệnh thực hiện như thế nào

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
Giá trị 5
Giá trị 7
Giá trị 9

  • Biểu thức bên trong cặp ngoặc tròn phải là một biểu thức logic (biểu thức trả về giá trị true hoặc false)
  • Biểu thức điều kiện phải nằm trong cặp ngoặc tròn
  • Sau từ khoá while ta chỉ có thể đặt được duy nhất một lệnh, do vậy để có thể thực hiện nhiều tác vụ sau while ta phải bao chúng trong một khối lệnh
  • Bên trong thân của vòng lặp while ta nên có lệnh làm thay đổi giá trị của biểu thức logic, nếu không chúng ta sẽ rơi vào vòng lặp vô hạn.
  • Câu lệnh trong thân cấu trúc while có thể không được thực hiện lần nào (do biểu thức lôgic ban đầu có giá trị false )

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

Câu lệnh While điều kiện dữ câu lệnh thực hiện như thế nào

Nhìn vào sơ đồ này ta thấy sự hoạt động của nó như sau:

  • Bước 1: thực hiện lệnh
  • Bước 2: sau khi thực hiện lệnh xong nó tính giá trị của biểu thức logic
  • Bước 3: nếu biểu thức logic đúng nó quay trở lại bước 1, nếu sai thì bước 4
  • Bước 4 kết thúc vòng lặp và thực hiện lệnh sau do-while

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
Giá trị 6
Giá trị 9

  • Biểu thức bên trong cặp ngoặc tròn phải là một biểu thức logic (biểu thức trả về giá trị true hoặc false)
  • Biểu thức điều kiện phải nằm trong cặp ngoặc tròn
  • Sau từ khoá do ta có thể đặt được nhiều lệnh
  • Bên trong thân của vòng lặp do-while ta nên có lệnh làm thay đổi giá trị của biểu thức logic, nếu không chúng ta sẽ rơi vào vòng lặp vô hạn.
  • Câu lệnh trong thân cấu trúc do-while được thực hiện ít nhất một lần