câu lệnh while

Câu mệnh lệnh while là câu mệnh lệnh giản dị và đơn giản nhất vô tư câu mệnh lệnh vòng lặp nhưng mà C++ hỗ trợ và nó mang 1 khái niệm rất rất như thể với câu mệnh lệnh if:

while (expression)
    statement;

Một câu lệnh while được khai báo vì chưng kể từ khóa while. Khi một câu lệnh while được thực ganh đua, biểu thức(expression) được dự trù. Nếu biểu thức ước tính là true (khác không), câu lệnh(statement) tiếp tục thực ganh đua.

Bạn đang xem: câu lệnh while

Tuy nhiên, không phải như một câu mệnh lệnh if, một Khi câu mệnh lệnh tiếp tục thực ganh đua kết thúc, luồng thực thị tiếp tục về bên đầu câu lệnh while và quy trình được tái diễn.

Hãy nằm trong coi một vòng lặp giản dị và đơn giản. Chương trình tại đây in toàn bộ những số kể từ 0 cho tới 9:

/**
* Cafedev.vn - Kênh vấn đề IT tiên phong hàng đầu Việt Nam
*
* @author cafedevn
* Contact: [email protected]
* Fanpage: https://www.facebook.com/cafedevn
* Instagram: https://instagram.com/cafedevn
* Twitter: https://twitter.com/CafedeVn
* Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
*/

#include <iostream>
 
int main()
{
    int count{ 0 };
    while (count < 10)
    {
      std::cout << count << ' ';
      ++count;
    }
    std::cout << "done!";
 
    return 0;
}

Kết ngược như sau:

0 1 2 3 4 5 6 7 8 9 done!

Hãy nằm trong đánh giá kỹ rộng lớn những gì công tác này đang khiến. trước hết, count được khởi tạo ra vì chưng 0. 0<10 được Review là đích thị, bởi vậy, khối mệnh lệnh thực ganh đua. Câu mệnh lệnh trước tiên in 0 và count tăng thêm một. Luồng tinh chỉnh tiếp sau đó tảo quay về đầu câu lệnh while. 1<10 được Review là đích thị, bởi vậy, khối code được thực ganh đua lại. Khối code tiếp tục liên tiếp thực ganh đua cho tới Khi count vì chưng 10, bên trên ê điểm 10 <10 sẽ tiến hành Review là sai và vòng lặp tiếp tục bay.

Có thể là 1 trong những câu lệnh while thực ganh đua 0 phen. Hãy đánh giá công tác sau:

#include <iostream>
 
int main()
{
    int count{ 15 };
    while (count < 10)
    {
        std::cout << count << ' ';
        ++count;
    }
    std::cout << "done!";
 
    return 0;
}

Điều khiếu nại 15 <10 tức thì ngay thức thì Review trở thành sai, vậy nên câu lệnh while bị bỏ lỡ. Điều độc nhất công tác này được ấn là done!.

1. Vòng lặp vô hạn

Mặt không giống, nếu như biểu thức luôn luôn trực tiếp Review là đích thị, vòng lặp while tiếp tục thực ganh đua mãi mãi. Đây được gọi là 1 trong những vòng lặp vô hạn. Dưới đấy là một ví dụ về một vòng lặp vô hạn:

/**
* Cafedev.vn - Kênh vấn đề IT tiên phong hàng đầu Việt Nam
*
* @author cafedevn
* Contact: [email protected]
* Fanpage: https://www.facebook.com/cafedevn
* Instagram: https://instagram.com/cafedevn
* Twitter: https://twitter.com/CafedeVn
* Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
*/

#include <iostream>
 
int main()
{
    int count{ 0 };
    while (count < 10) // this condition will never be false
    {
        std::cout << count << ' '; // so sánh this line will repeatedly execute
    }
 
    return 0; // this line will never execute
}

Vì con số ko lúc nào tăng vô công tác này, nên count <10 tiếp tục luôn luôn đích thị. Do ê, vòng lặp sẽ không còn lúc nào kết thúc và công tác tiếp tục in “0 0 0 0 0 …” mãi mãi.

Chúng tao hoàn toàn có thể khai báo một vòng lặp vô hạn đem căn nhà ý như vậy này:

while (true)
{
  // this loop will execute forever
}

Cách độc nhất nhằm bay ngoài một vòng lặp vô hạn là trải qua câu mệnh lệnh return, câu mệnh lệnh break, câu mệnh lệnh exit, câu mệnh lệnh goto, một nước ngoài lệ được ném hoặc người tiêu dùng kill công tác.

Các công tác chạy cho tới Khi người tiêu dùng đưa ra quyết định giới hạn bọn chúng thỉnh thoảng cố ý dùng một vòng lặp vô hạn cùng theo với câu mệnh lệnh return, break hoặc exit nhằm kết thúc vòng lặp. Người tao thường nhìn thấy loại vòng lặp này trong những phần mềm sever trang web chạy liên tiếp và những đòi hỏi trang web công ty.

2. Biến vòng lặp

Thông thông thường, tất cả chúng ta mong muốn một vòng lặp nhằm triển khai một trong những phen chắc chắn. Để thực hiện điều này, người tao hay được dùng một biến đổi vòng lặp, thông thường được gọi là cỗ điểm. Biến vòng lặp là biến đổi số vẹn toàn được khai báo mang lại mục tiêu độc nhất là điểm số phen vòng lặp tiếp tục triển khai. Trong những ví dụ bên trên, con số biến đổi là 1 trong những biến đổi vòng lặp.

Xem thêm: sơ đồ bộ máy nhà nước thời trần

Các biến đổi vòng lặp thông thường được gọi là giản dị và đơn giản, ví dụ như i, j hoặc k. Tuy nhiên, việc gọi là biến đổi i, j hoặc k mang 1 yếu tố. Nếu mình thích biết điểm nào là vô công tác của khách hàng dùng một biến đổi vòng lặp(i,j,k) và các bạn dùng tính năng mò mẫm kiếm những ký tự động i, j hoặc k, tính năng mò mẫm kiếm tiếp tục trả về cho mình khá là nhiều kết quả! phần lớn kể từ đem i, j hoặc k vô ê. Do ê, một phát minh đảm bảo chất lượng rộng lớn là dùng iii, jjj hoặc kkk thực hiện thương hiệu biến đổi vòng lặp của khách hàng. Bởi vì thế những thương hiệu này là độc nhất, điều này thực hiện mang lại việc mò mẫm kiếm những biến đổi vòng lặp đơn giản và dễ dàng rất là nhiều và chung bọn chúng nổi trội như các biến đổi vòng lặp. Một phát minh đảm bảo chất lượng không chỉ có thế là dùng thương hiệu biến đổi với chân thành và ý nghĩa thực, ví dụ như count hoặc thương hiệu hỗ trợ cụ thể rộng lớn về những gì các bạn đang được điểm.

Cách cực tốt là dùng số vẹn toàn đem lốt cho những biến đổi vòng lặp. Sử dụng số vẹn toàn ko lốt hoàn toàn có thể kéo theo những yếu tố ko mong ước. Hãy đánh giá những mã sau đây:

/**
* Cafedev.vn - Kênh vấn đề IT tiên phong hàng đầu Việt Nam
*
* @author cafedevn
* Contact: [email protected]
* Fanpage: https://www.facebook.com/cafedevn
* Instagram: https://instagram.com/cafedevn
* Twitter: https://twitter.com/CafedeVn
* Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
*/

#include <iostream>
 
int main()
{
    unsigned int count{ 10 };
 
    // count from 10 down to lớn 0
    while (count >= 0)
    {
        if (count == 0)
        {
            std::cout << "blastoff!";
        }
        else
        {
            std::cout << count << ' ';
        }
        --count;
    }
 
    return 0;
}

Hãy coi ví dụ bên trên và coi chúng ta có thể phân phát sinh ra lỗi ko. Nó ko rõ rệt lắm.

Hóa đi ra, công tác này là 1 trong những vòng lặp vô hạn. Nó chính thức bằng phương pháp in “10 9 8 7 6 5 4 3 2 1 blastoff!” như ý, tuy nhiên tiếp sau đó lên đường thoát khỏi lối ray và chính thức điểm ngược kể từ 4294967295. Tại sao? Bởi vì thế ĐK vòng lặp count >= 0 sẽ không còn lúc nào sai! Khi điểm vì chưng 0, 0>= 0 là đích thị. Sau ê –count được thực ganh đua và điểm tràn về 4294967295. Và vì thế 4294967295 > = 0, công tác kế tiếp. Vì số ciunt ko không tồn tại lốt nên nó ko lúc nào hoàn toàn có thể âm và vì thế ko lúc nào hoàn toàn có thể âm, nên vòng lặp sẽ không còn kết thúc.

3. Lặp lại

Mỗi Khi một vòng lặp thực ganh đua, nó được gọi là 1 trong những luật lệ lặp.

Bởi vì thế thân thích vòng lặp thông thường là 1 trong những khối và cũng chính vì khối này được nhập và bay với từng phen lặp, nên ngẫu nhiên biến đổi nào là được khai báo bên phía trong thân thích vòng lặp đều được tạo ra và tiếp sau đó bị diệt với từng phen lặp. Trong ví dụ sau, biến đổi x sẽ tiến hành tạo ra và diệt 5 lần:

#include <iostream>
 
int main()
{
    int count{ 1 };
    int sum{ 0 }; // sum is declared up here because we need it later (beyond the loop)
 
    while (count <= 5) // iterate 5 times
    {
        int x{}; // x is created here with each iteration
 
        std::cout << "Enter integer #" << count << ':';
        std::cin >> x;
 
        sum += x;
 
        // increment the loop counter
        ++count;
    } // x is destroyed here with each iteration
 
    std::cout << "The sum of all numbers entered is: " << sum << '\n';
 
    return 0;
}

Đối với những biến đổi cơ bạn dạng, điều này là đảm bảo chất lượng. Đối với những biến đổi ko cơ bạn dạng (như structs và class), điều này hoàn toàn có thể tạo nên yếu tố về tính năng. Do ê, chúng ta có thể mong muốn đánh giá việc xác lập những biến đổi ko cơ bạn dạng trước vòng lặp. Đây là 1 trong những trong mỗi tình huống chúng ta có thể khai báo một biến đổi trước lúc dùng phen trước tiên.

Lưu ý rằng con số biến đổi được khai báo phía bên ngoài vòng lặp. Vấn đề này là quan trọng cũng chính vì tất cả chúng ta cần thiết độ quý hiếm nhằm giữ lại bên trên những phen lặp (không bị diệt với từng phen lặp).

Thông thông thường, tất cả chúng ta mong muốn thực hiện một chiếc gì ê từng phen lặp, ví dụ như in một loại mới mẻ. Vấn đề này hoàn toàn có thể đơn giản và dễ dàng được triển khai bằng phương pháp dùng toán tử ++ bên trên cỗ điểm của bọn chúng ta:

/**
* Cafedev.vn - Kênh vấn đề IT tiên phong hàng đầu Việt Nam
*
* @author cafedevn
* Contact: [email protected]
* Fanpage: https://www.facebook.com/cafedevn
* Instagram: https://instagram.com/cafedevn
* Twitter: https://twitter.com/CafedeVn
* Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
*/

#include <iostream>
 
// Iterate through every number between 1 and 50
int main()
{
    int count{ 1 };
    while (count <= 50)
    {
        // print the number (pad numbers under 10 with a leading 0 for formatting purposes)
        if (count < 10)
        {
            std::cout << "0" << count << ' ';
        }
        else
        {
            std::cout << count << ' ';
        }
 
        // if the loop variable is divisible by 10, print a newline
        if (count % 10 == 0)
        {
            std::cout << '\n';
        }
            
        // increment the loop counter
        ++count;
    }
 
    return 0;
}

Chương trình này dẫn đến kết quả:

Xem thêm: ngành công nghiệp trọng điểm

01 02 03 04 05 06 07 08 09 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50

4. Vòng lặp lồng nhau

Cũng hoàn toàn có thể lồng những vòng lặp mặt mũi trong những vòng không giống. Trong ví dụ sau, từng vòng lặp bên phía trong và vòng lặp phía bên ngoài đều phải có cỗ điểm riêng rẽ. Tuy nhiên, cảnh báo rằng biểu thức vòng lặp bên phía trong cũng dùng cỗ điểm của vòng lặp mặt mũi ngoài!

/**
* Cafedev.vn - Kênh vấn đề IT tiên phong hàng đầu Việt Nam
*
* @author cafedevn
* Contact: [email protected]
* Fanpage: https://www.facebook.com/cafedevn
* Instagram: https://instagram.com/cafedevn
* Twitter: https://twitter.com/CafedeVn
* Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
*/

#include <iostream>
 
// Loop between 1 and 5
int main()
{
    int outer{ 1 };
    while (outer <= 5)
    {
        // loop between 1 and outer
        int inner{ 1 };
        while (inner <= outer)
        {
            std::cout << inner++ << ' ';
        }
 
        // print a newline at the over of each row
        std::cout << '\n';
        ++outer;
    }
 
    return 0;
}

Chương trình này in ra:

1
1 2
1 2 3
1 2 3 4
1 2 3 4 5

Bài tập dượt C++ về Vòng lặp

Đăng ký kênh youtube nhằm cỗ vũ Cafedev nha chúng ta, Thanks you!