[Basic] Vòng lặp for, while, do…while

Vòng lặp while

Cú pháp

while (condition)
{
   statement;
}

Các câu lệnh (statement) trong while được thực hiện lặp đi lặp lại đến khi nào điều kiện (condition) không còn đúng.

Ví dụ :

#include <iostream>
 
int main()

{
   
   int count = 0;

   while (count << 10)
   
   {
      
      std::cout << count << " ";

      ++count;
   
   }
   
   std::cout << "Done!";
 
   return 0;

}

Kết quả :

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

Vòng lặp while ở ví dụ trên được thưc hiện lần lượt theo các bước.

Bước 1 : Kiểm tra điều kiện count < 10 nếu

  • Đúng : Chuyến sang bước 2
  • Sai : Thoát khỏi vòng lặp while, thực hiện câu lệnh std::cout << “Done!”;

Bước 2 : Thực hiện câu lệnh std::cout << count << ” “;

Bước 3: Tăng count lên 1 (++count), sau đó quay về bước 1 tiếp tục vòng lặp.

Chú ý:

  • Cấu trúc while KHÔNG có dấu ‘;’ sau ‘}’

Vòng lặp do…while

Cú pháp

do
{
   statement;
}
while (condition);

Sau khi các câu lệnh trong do được thực hiện xong, điều kiện trong while sẽ được kiểm tra, nếu điều kiện đúng vòng lặp sẽ được tiếp tục thực hiện, nếu điều kiện sai sẽ thoát khỏi vòng lặp.

Ví dụ:

#include <iostream>
 
int main()

{
   int count = 0;

   do
   
   {
      
      std::cout << count << " ";

      ++count;

   } while (count < 10);

   std::cout << "Done!";
 
   return 0;

}

Kết quả :

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

Vòng lặp dowhile ở ví dụ trên được thưc hiện lần lượt theo các bước.

Bước 1 : Thực hiện câu lệnh std::cout << count << ” “;

Bước 2 : Tăng count lên 1 (++count)

Bước 3 : Kiểm tra điều kiện count < 10 nếu

  • Đúng : Quay lại bước 1
  • Sai : Thoát khỏi vòng lặp do…while, thực hiện câu lệnh std::cout << “Done!”;

Chú ý:

  • Đừng quên dấu ‘;’ sau điều kiện while.
  • Các câu lệnh trong do sẽ được thực hiện ít nhất 1 lần. Vì trong do…while các câu lệnh sẽ được thực hiện trước sau đó mới kiểm tra điều kiện.

Vòng lặp for

Cú pháp:

for (init-statement; condition; end-expression)
{
   statement;
}

Ta có thể dễ dàng chuyển đổi từ for sang while

init-statement;
while (condition)
{
   statement;
   end-expression;
}

Vòng lặp for sẽ được thực hiện theo các bước sau:

Bước 1 : init-statement được thực hiện. trong init-statement thường là các câu lệnh định nghĩa biến và khởi tạo giá trị cho biến, init-statement chỉ được thực hiện 1 lần duy nhất.

Bước 2 : Kiểm tra điều kiện vòng lặp (condition)

  • Nếu đúng chuyển sang bước 3
  • Nếu sai thoát khỏi vòng lặp

Bước 3 : Thực hiện các câu lệnh (statement) trong for.

Bước 4: Thực hiện câu lệnh end-expression sau đó chuyển lại bước 2, tiếp tục vòng lặp.

Ví dụ:

#include <iostream>
 
int main()

{
   
   for (int count = 0; count < 10; count++)
   
   {
      
      std::cout << count << " ";
   
   }
   
   std::cout << "Done!";
 
   return 0;

}

Kết quả :

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

Theo ví dụ trên từng bước thực hiện sẽ như sau:

Bước 1 : Định nghĩa và khởi tạo biến count : int count = 0

Bước 2 : Kiểm tra điều kiện count < 10:

  • Đúng : Tiếp tục thực hiện bước 3
  • Sai : Thoát khỏi vòng lặp for, thực hiện câu lệnh std::cout << “Done!”;

Bước 3 : Tăng biến count lên 1 : count++

Chú ý :

  • Trong for các thành phần có thể bỏ trống, nhưng bắt buộc phải đủ 3 thành phần (init-statement; condition; end-expression) tức là phải đủ 2 dấu “;” để ngăn cách các thành phần đó

Ví dụ

Trống thành phần init-statement

int i = 0;

for (; i < 10; i++)

{
   
   //TODO

}

Trống thành phần condition (lúc này điều kiện luôn đúng, vòng lặp vô hạn)

for (int i = 0; ; i++)

{
   
   //TODO

}

Trống cả 3 thành phần

for ( ; ; )

{
   
   //TODO

}
  • Trong condition có nhiều điều kiện, thì các điều kiện ngăn cách nhau bằng dấu ‘,’ và điều kiện để tiếp tục vòng lặp là điều kiện cuối cùng.

Ví dụ

#include <iostream>

using namespace std;

int main()

{
   
   //Chứa 2 điều kiện i < 10, j < 5, Điều kiện tiếp tục vòng lặp là j < 5
   for (int i = 0, j = 0; i < 10, j < 5 ; j++, i++)
   
   {
      
      cout << i << " ";
   
   }

   return 0;

}

Kết quả :

0 1 2 3 4

Vòng lặp for Range-based

Cú pháp

for ( declaration : range )
{
   statement;
}

Ví dụ

#include <iostream>

#include <string>

using namespace std;

int main ()

{

   string str {"DEEP-CPP!"};

   for (char c : str)

   {

      cout << c << " ";

   }

   cout << '\n';

}

Kết quả

D  E  E  P  -  C  P  P

 

Was this article helpful?

Leave A Comment?