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 nhập tứ câu mệnh lệnh vòng lặp nhưng mà C++ hỗ trợ và nó mang trong mình 1 khái niệm vô cùng 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ày kể từ khóa while. Khi một câu lệnh while được thực đ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 đ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 Lúc câu mệnh lệnh vẫn thực đua đoạn, luồng thực thị tiếp tục quay trở lại đầ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 kiểm tra kỹ rộng lớn những gì lịch trình này đang khiến. Trước tiên, count được khởi tạo ra vày 0. 0<10 được Đánh Giá là đích thị, bởi vậy, khối mệnh lệnh thực đua. Câu mệnh lệnh thứ nhất in 0 và count tăng thêm một. Luồng tinh chỉnh tiếp sau đó con quay quay về đầu câu lệnh while. 1<10 được Đánh Giá là đích thị, bởi vậy, khối code được thực đua lại. Khối code tiếp tục liên tiếp thực đua cho tới Lúc count vày 10, bên trên cơ điểm 10 <10 sẽ tiến hành Đánh Giá 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 đua 0 phiên. Hãy kiểm tra lịch trình 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ì Đánh Giá trở thành sai, vậy nên câu lệnh while bị bỏ lỡ. Điều độc nhất lịch trình 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 Đánh Giá là đích thị, vòng lặp while tiếp tục thực đua mãi mãi. Đây được gọi là 1 trong những vòng lặp vô hạn. Dưới đó 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 << ' '; // ví this line will repeatedly execute
    }
 
    return 0; // this line will never execute
}

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

Chúng tớ hoàn toàn có thể khai báo một vòng lặp vô hạn đem ngôi 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 lịch trình.

Các lịch trình chạy cho tới Lúc người tiêu dùng 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 hoàn thành vòng lặp. Người tớ thường bắt gặp loại vòng lặp này trong số phần mềm sever trang web chạy liên tiếp và những đòi hỏi trang web cty.

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 vài phiên chắc chắn. Để thực hiện điều này, người tớ thường được sử dụng một phát triển thành vòng lặp, thông thường được gọi là cỗ điểm. Biến vòng lặp là phát triển thành số nguyên vẹn được khai báo mang đến mục tiêu độc nhất là điểm số phiên vòng lặp vẫn triển khai. Trong những ví dụ bên trên, con số phát triển thành là 1 trong những phát triển thành vòng lặp.

Xem thêm: copy danh bạ từ iphone sang sim

Các phát triển thành 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à phát triển thành i, j hoặc k mang trong mình 1 yếu tố. Nếu bạn thích biết điểm nào là nhập lịch trình của doanh nghiệp dùng một phát triển thành vòng lặp(i,j,k) và chúng ta dùng tính năng mò mẫm tìm kiếm những ký tự động i, j hoặc k, tính năng mò mẫm tì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 nhập cơ. Do cơ, một ý tưởng phát minh chất lượng rộng lớn là dùng iii, jjj hoặc kkk thực hiện thương hiệu phát triển thành vòng lặp của doanh nghiệp. 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 đến việc mò mẫm tìm kiếm những phát triển thành vòng lặp đơn giản dễ dàng rất là nhiều và gom bọn chúng nổi trội như các phát triển thành vòng lặp. Một ý tưởng phát minh chất lượng không chỉ có vậy là dùng thương hiệu phát triển thành với ý nghĩa sâu sắc thực, ví dụ như count hoặc thương hiệu hỗ trợ cụ thể rộng lớn về những gì chúng ta đang được điểm.

Cách cực tốt là dùng số nguyên vẹn đem vệt cho những phát triển thành vòng lặp. Sử dụng số nguyên vẹn ko vệt hoàn toàn có thể kéo theo những yếu tố ko mong ước. Hãy kiểm tra 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 bạn cũng có thể vạc sinh ra lỗi ko. Nó ko rõ rệt lắm.

Hóa đi ra, lịch trình 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ư yêu cầu, tuy nhiên tiếp sau đó lên đường thoát ra 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 khi nào sai! Khi điểm vày 0, 0>= 0 là đích thị. Sau cơ –count được thực đua và điểm tràn về 4294967295. Và vì thế 4294967295 > = 0, lịch trình kế tiếp. Vì số ciunt ko không tồn tại vệt nên nó ko khi nào hoàn toàn có thể âm và vì thế ko khi nào hoàn toàn có thể âm, nên vòng lặp sẽ không còn hoàn thành.

3. Lặp lại

Mỗi Lúc một vòng lặp thực đua, nó được gọi là 1 trong những quy tắc lặp.

Bởi vì thế thân thiết vòng lặp thông thường là 1 trong những khối và chính vì khối này được nhập và bay với từng phiên lặp, nên ngẫu nhiên phát triển thành nào là được khai báo bên phía trong thân thiết vòng lặp đều được tạo ra và tiếp sau đó bị bỏ với từng phiên lặp. Trong ví dụ sau, phát triển thành x sẽ tiến hành tạo ra và bỏ 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 phát triển thành cơ bạn dạng, điều này là chất lượng. Đối với những phát triển thành ko cơ bạn dạng (như structs và class), điều này hoàn toàn có thể tạo ra yếu tố về tính năng. Do cơ, bạn cũng có thể mong muốn kiểm tra việc xác lập những phát triển thành 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 bạn cũng có thể khai báo một phát triển thành trước lúc dùng phiên thứ nhất.

Lưu ý rằng con số phát triển thành được khai báo phía bên ngoài vòng lặp. Vấn đề này là quan trọng chính vì tất cả chúng ta cần thiết độ quý hiếm nhằm lưu giữ bên trên những phiên lặp (không bị bỏ với từng phiên 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ì cơ từng phiên lặp, ví dụ như in một dòng sản phẩm mới nhất. Vấn đề này hoàn toàn có thể đơn giản 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 đưa đến kết quả:

Xem thêm: s9+

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ày trong số 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 sở hữu cỗ điểm riêng biệt. Tuy nhiên, chú ý 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ày 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 kết thúc 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 luyện C++ về Vòng lặp

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