Vòng lặp trong C#: Tìm hiểu từ A – Z

Vòng lặp trong C# là một phần kiến thức cực kỳ quan trọng cần phải nắm để giải quyết tốt các bài toán, chương trình, dự án được giao cho. Vậy vòng lặp trong C# là gì? Có những kiểu vòng lặp nào và cấu trúc, cú pháp ra sao? Cùng Comdy.vn tìm hiểu ngay nhé.

Vòng lặp là gì?

Vòng lặp là gì
Vòng lặp trong c# cho phép chúng ta thực thi một câu lệnh hoặc một nhóm các câu lệnh nhiều lần

Câu lệnh lặp là gì? Vòng lặp trong c# cho phép chúng ta thực thi một câu lệnh hoặc một nhóm các câu lệnh nhiều lần. Sau đây là sơ đồ tổng quát từ một câu lệnh lặp trong hầu hết các ngôn ngữ lập trình:

C# hỗ trợ những lệnh điều khiển sau đây:

Kiểu vòng lặp Miêu tả
Vòng lặp while trong c# Lặp lại một hoặc một nhóm các lệnh trong khi điều kiện đã cho là đúng. Nó kiểm tra điều kiện trước khi thực hiện thân vòng lặp.
vòng lặp for trong c# (câu lệnh lặp for) Thực thi một dãy các lệnh nhiều lần và tóm tắt đoạn code mà quản lý biến vòng lặp.
Vòng lặp do…while trong c# Giống lệnh while, ngoại trừ ở điểm là nó kiểm tra điều kiện ở cuối thân vòng lặp và luôn thực hiện vòng lặp đầu tiên dù điều kiện đúng hay không.
Vòng lặp foreach trong c# Được sử dụng để duyệt lần lượt từng phần tử trong một tập hợp, mảng có sẵn..
Vòng lặp lồng nhau trong c# Bạn có thể sử dụng một hoặc nhiều vòng lặp trong các vòng lặp while, for hoặc do..while khác.

Vòng lặp while C#

Vòng lặp while trong C# thực hiện lặp đi lặp lại một lệnh cho đến khi nào điều kiện đã cho không còn đúng.

Cú pháp vòng lặp while

while (condition) 
{
   statement(s);
}

Theo cú pháp trên thì statement(s) có thể là lệnh đơn hoặc một khối các lệnh. condition có thể là bất kỳ biểu thức logic nào. Vòng lặp sẽ lặp đi lặp lại khi điều kiện là true.

Khi điều kiện trở thành false, chương trình điều khiển ngay lập tức chuyển tới dòng lệnh ngay sau vòng lặp.

Lưu ý: vòng lặp while có thể không chạy ngay từ đầu nếu kiểm tra điều kiện và kết quả là false, phần thân vòng lặp được bỏ qua và lệnh đầu tiên ngay sau vòng lặp sẽ được thực thi.

Ví dụ vòng lặp while trong C#

using System;

namespace Loops 
{
   class Program 
   {
      static void Main(string[] args) 
      {
         // local variable definition
         int a = 10;

         // while loop execution
         while (a < 15) 
         {
            Console.WriteLine("value of a: {0}", a);
            a++;
         }
         Console.ReadLine();
      }
   }
}

Đây là kết quả khi biên dịch và chạy chương trình trên:

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14

Vòng lặp for

Vòng lặp for trong C#
Vòng lặp for trong C# là một cấu trúc điều khiển lặp đi lặp lại mà cho phép bạn viết một vòng lặp một cách hiệu quả,

Vòng lặp for trong C# là một cấu trúc điều khiển lặp đi lặp lại mà cho phép bạn viết một vòng lặp một cách hiệu quả, thực hiện trong một khoảng thời gian cụ thể nào đó.

Cú pháp vòng lặp for trong C#

for ( init; condition; increment ) 
{
   statement(s);
}

Dưới đây là miêu tả quy trình thực hiện một vòng lặp for:

  • Bước 1: Lệnh init được thực hiện đầu tiên và chỉ một lần. Bước này cho phép bạn khai báo và khởi tạo bất kỳ biến điều khiển vòng lặp nào.
  • Bước 2: condition là điều kiện của vòng lặp. Nếu điều kiện là true, phần thân vòng lặp được thực thi. Nếu nó là false, phần thân vòng lặp không được thực thi và dòng điều khiển nhảy tới lệnh tiếp theo ngay sau vòng lặp for.
  • Bước 3: thực thi các lệnh ở trong vòng lặp statement(s).
  • Bước 4: Thực thi lệnh increment. Lệnh này cho phép bạn cập nhật bất kỳ biến điều khiển vòng lặp nào rồi lặp lại bước 2.

Ví dụ vòng lặp for trong C#

using System;

namespace Loops 
{
   class Program 
   {
      static void Main(string[] args) 
      {         
         // for loop execution
         for (int a = 10; a < 15; a++) 
         {
            Console.WriteLine("value of a: {0}", a);
         }
         Console.ReadLine();
      }
   }
}

Đây là kết quả khi chạy chương trình trên:

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14

Vòng lặp do…while trong C#

Không giống như vòng lặp for và while – phải kiểm tra điều kiện vòng lặp ở ngay bước đầu tiên của vòng lặp, nếu thỏa mãn thì vòng lặp mới chạy. Vòng lặp do while c# kiểm tra điều kiện ở cuối vòng lặp.

Điều này có nghĩa là vòng lặp while do c# luôn thực hiện ít nhất một lần lặp bất kể điều kiện lặp có đúng hay không.

Cú pháp vòng lặp do…while trong C#

Cấu trúc do while trong c#:

do 
{
   statement(s);
} while( condition );

Ví dụ vòng lặp do…while trong C#

Ví dụ vòng lặp do while trong C#
Lấy ví dụ dẫn chứng về vòng lặp do…while trong C#
using System;

namespace Loops 
{
   class Program 
   {
      static void Main(string[] args) 
      {
         // local variable definition
         int a = 10;
         
         // do loop execution
         do 
         {
            Console.WriteLine("value of a: {0}", a);
            a = a + 1;
         } while (a < 15);
         Console.ReadLine();
      }
   }
}

Đây là kết quả trả về:

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14

Vòng lặp hàm foreach trong C#

Foreach c# là gì? Vòng lặp c# foreach được sử dụng để duyệt lần lượt từng phần tử trong một tập hợp, mảng có sẵn.

Cú pháp vòng lặp foreach trong C#

foreach (var item in collection)
{
  	// statement(s)
}

Trong đó:

  • item sẽ là từng phần tử trong tập hợp hoặc mảng.
  • collection là tập hợp hoặc mảng.
  • statement(s) là một hoặc nhiều lệnh sẽ được thực thi khi collection có phần tử hoặc chưa duyệt các phần tử trong collection.

Ví dụ vòng lặp foreach trong C#

Ví dụ vòng lặp foreach trong C#
Ví dụ vòng lặp foreach trong C#
using System;
namespace Samples
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] array = new int[5] { 1, 2, 3, 4, 5 };

            foreach (var item in array)
            {
                Console.WriteLine("value: {0}", item);
            }          

            Console.ReadLine();
        }
    }
}

Kết quả khi chạy chương trình:

value: 1
value: 2
value: 3
value: 4
value: 5

Vòng lặp lồng nhau trong C#

C# cho phép các vòng lặp lồng nhau để thực hiện các xử lý phức tạp.

Cú pháp vòng lặp lồng nhau trong C#

Cú pháp vòng lặp for lồng nhau:

for ( init1; condition1; increment1 ) 
{
   for ( init2; condition2; increment2 ) 
   {
      statement(s);
   }
   statement(s);
}

Cú pháp vòng lặp while lồng nhau:

while (condition1) 
{
   while (condition2) 
   {
      statement(s);
   }
   statement(s);
}

Cú pháp vòng lặp do…while lồng nhau:

do 
{
   statement(s);
   do 
   {
      statement(s);
   } while( condition1 );
} while( condition2 );

Lưu ý: Với vòng lặp lồng nhau thì bạn có thể đặt bất kỳ kiểu vòng lặp bên trong kiểu vòng lặp khác. Ví dụ, một vòng lặp for có thể bên trong một vòng lặp while, và ngược lại.

Ví dụ vòng lặp lồng nhau trong C#

Ví dụ vòng lặp lồng nhau trong C#
Ví dụ vòng lặp lồng nhau trong C#
using System;

namespace Loops 
{
   class Program 
   {
      static void Main(string[] args) 
      {
         for (var i = 1; i < 3; i++) 
         {
            for (var j = 5; j < 7; j++)
            {
            	Console.WriteLine("i = {0}; j = {1}, i + j = {2}", i, j, i + j);
            }
         }
         Console.ReadLine();
      }
   }
}

Đây là kết quả:

i = 1; j = 5, i + j = 6
i = 1; j = 6, i + j = 7
i = 2; j = 5, i + j = 7
i = 2; j = 6, i + j = 8

Các lệnh điều khiển vòng lặp

Các lệnh điều khiển vòng lặp
Các lệnh điều khiển giúp bạn thay đổi cách vòng lặp duyệt các phần tử trong danh sách

Đôi khi bạn muốn thay đổi cách vòng lặp duyệt các phần tử trong danh sách. Các lệnh điều khiển vòng lặp sẽ giúp bạn làm điều này.

C# hỗ trợ các lệnh điều khiển vòng lặp sau đây:

Lệnh điều khiển Miêu tả
Lệnh break Kết thúc vòng lặp hoặc lệnh switch và chuyển sang thực thi vòng lặp hoặc lệnh switch ngay sau nó.
Lệnh continue Khi gặp lệnh này thì chương trình sẽ bỏ qua các câu lệnh ở dưới nó (trong cùng một câu lệnh lặp) để thực hiện vòng lặp mới.

Lệnh break trong C#

Lệnh break trong C# có hai cách sử dụng:

  • Khi lệnh break được sử dụng trong vòng lặp, vòng lặp ngay lập tức kết thúc và điều khiển chương trình bắt đầu lệnh tiếp theo sau vòng lặp.
  • Nó có thể được sử dụng trong lệnh switch.

Nếu bạn đang sử dụng các vòng lặp lồng nhau (ví dụ, một vòng lặp bên trong vòng lặp khác). Nếu lệnh break nằm trong vòng lặp con thì vòng lặp con ngay lập tức kết thúc và điều khiển chương trình bắt đầu lệnh tiếp theo sau vòng lặp con.

Cú pháp lệnh break trong C#

Cú pháp của lệnh break trong C# như sau:

break;

Ví dụ lệnh break trong C#

using System;

namespace Loops 
{
   class Program 
   {
      static void Main(string[] args) 
      {
         // local variable definition
         int a = 10;
         
         // while loop execution
         while (a < 20) 
         {
            Console.WriteLine("value of a: {0}", a);
            a++;
            
            if (a > 15) 
            {
               // terminate the loop using break statement
               break;
            }
         }
         Console.ReadLine();
      }
   }
}

Đây là kết quả của chương trình trên:

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15

Lệnh continue trong C#

Lệnh continue trong C#
Thay vì bắt buộc kết thúc, lệnh continue bắt buộc vòng lặp tiếp theo diễn ra, bỏ qua bất kỳ đoạn code nào ở giữa.

Lệnh continue trong C# làm việc hơi giống với lệnh break. Thay vì bắt buộc kết thúc, nó bắt buộc vòng lặp tiếp theo diễn ra, bỏ qua bất kỳ đoạn code nào ở giữa.

Với vòng lặp for c#, lệnh continue làm cho bước kiểm tra điều kiện và phần increment của vòng lặp thực thi. Với while và do…while, lệnh continue làm điều khiển chương trình chuyển tới các kiểm tra điều kiện.

Cú pháp lệnh continue trong C#

Cú pháp của lệnh continue trong C# như sau:

continue;

Ví dụ lệnh continue trong C#

using System;

namespace Loops 
{
   class Program 
   {
      static void Main(string[] args) 
      {
         // local variable definition
         int a = 10;
         
         // do loop execution
         do 
         {
            if (a == 15) 
            {
               // skip the iteration
               a++;
               continue;
            }
            Console.WriteLine("value of a: {0}", a);
            a++;
         } while (a < 20);
         Console.ReadLine();
      }
   }
}

Kết quả của chương trình như sau:

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 16
value of a: 17
value of a: 18
value of a: 19

Vòng lặp vô hạn trong C#

"<yoastmark
Vòng lặp vô hạn trong C#

Ví dụ vòng lặp vô hạn

using System;

namespace Loops 
{
   class Program 
   {
      static void Main(string[] args) 
      {
      	 // vòng lặp for không có điều kiện
         for (; ; ) 
         {
            Console.WriteLine("Hey! I am trapped");
         }
         
         // hoặc while (true)
         while (true)
         {
            Console.WriteLine("Hey! I am trapped too");
         }
      }
   }
}

Các vòng lặp vô hạn này sẽ làm cho hệ thống gặp lỗi StackOverflowException. Do đó bạn cần phải kiểm tra kỹ các điều kiện của vòng lặp để tránh tạo ra các vòng lặp vô hạn.

While true là gì?

while true là một vòng lặp trong nhiều ngôn ngữ lập trình, nó tạo ra một vòng lặp vô hạn. Cụ thể, điều kiện của vòng lặp là luôn đúng, do đó vòng lặp sẽ thực hiện mã lệnh bên trong nó mãi mãi cho đến khi nó được dừng bằng cách sử dụng một lệnh như break hoặc một điều kiện ngừng khác.

Ý nghĩa của using trong c# là gì?

Ý nghĩa của using trong c# là gì
Using để quản lý tài nguyên và dùng cho các namespace

Trong ngôn ngữ lập trình C#, từ khóa using có hai ý nghĩa quan trọng:

Sử dụng using để quản lý tài nguyên (IDisposable)

Trong ngữ cảnh của việc quản lý tài nguyên, using thường được sử dụng để tự động giải phóng tài nguyên khi chúng không còn cần thiết.

Một điển hình là khi bạn làm việc với các đối tượng implement IDisposable, như là các đối tượng kết nối cơ sở dữ liệu, các tệp tin, hay các tài nguyên khác cần phải được giải phóng.

Sử dụng using cho các namespaces

using cũng được sử dụng để đưa các namespace vào phạm vi của mã nguồn. Điều này giúp tránh việc phải sử dụng tên đầy đủ của các lớp và phương thức trong mã nguồn, làm cho mã nguồn trở nên ngắn gọn hơn.

Vòng lặp while kết thúc khi nào?

Vòng lặp while kết thúc khi điều kiện kiểm tra trở thành false. Cụ thể, vòng lặp sẽ lặp đi lặp lại mã lệnh bên trong nó miễn là điều kiện kiểm tra là true. Ngay khi điều kiện kiểm tra trở thành false, vòng lặp sẽ dừng lại và quá trình thực thi sẽ tiếp tục với các lệnh sau vòng lặp.

Ví dụ:

count = 0
while count < 5:
    print(f”Giá trị của count là {count}”)
    count += 1
print(“Vòng lặp kết thúc.”)

Trong ví dụ này, vòng lặp sẽ thực hiện mã lệnh bên trong nó miễn là count nhỏ hơn 5. Khi count đạt đến giá trị 5, điều kiện trở thành false và vòng lặp kết thúc. Sau đó, lệnh print(“Vòng lặp kết thúc.”) sẽ được thực thi.

Tổng kết

Bài viết đã giúp bạn có một cái nhìn tổng quát về các loại vòng lặp như for, while, do…while, foreach. Xin cám ơn vì đã theo dõi và ủng hộ.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *