Các câu lệnh IF, Switch, For, While trong C# [Ví dụ]

⚡ Tóm tắt thông minh

Câu lệnh điều kiện và vòng lặp trong C# kiểm soát luồng chương trình bằng cách chạy hoặc lặp lại các khối mã dựa trên logic. Các câu lệnh if, switch, while và for cho phép chương trình đưa ra quyết định và lặp lại một cách hiệu quả.

  • 🔀 Kiểm soát lưu lượng: Các câu lệnh điều kiện thay đổi thứ tự thực thi sao cho chương trình chỉ chạy những câu lệnh phù hợp với logic của nó.
  • ❓ Câu lệnh if: Câu lệnh if đánh giá một biểu thức Boolean và thực thi một khối lệnh khi biểu thức đó đúng và một khối lệnh khác khi biểu thức đó sai.
  • 🔢 Câu lệnh switch: Câu lệnh switch so sánh một giá trị với nhiều nhãn trường hợp và sử dụng break để dừng lại khi tìm thấy sự trùng khớp.
  • 🔁 Trong khi lặp lại: Vòng lặp while lặp lại một khối lệnh miễn là điều kiện của nó vẫn đúng, điều này phù hợp với một số lần lặp không xác định.
  • 🔄 Đối với vòng lặp: Vòng lặp for khởi tạo, kiểm tra và tăng biến đếm trong cùng một dòng, rất lý tưởng khi biết số lần lặp lại.
  • 🤖 Hỗ trợ AI: GitHub Copilot soạn thảo logic điều kiện if, switch và loop, trong khi ML.NET tái sử dụng các điều kiện tương tự để phân nhánh các pipeline máy học.

Câu lệnh có điều kiện trong C#

Kiểm soát luồng và câu lệnh có điều kiện

Kiểm soát luồng và các câu lệnh có điều kiện có sẵn trong bất kỳ ngôn ngữ lập trình nào để thay đổi luồng của chương trình.

Ví dụ, nếu ai đó muốn chỉ thực thi một tập hợp các câu lệnh cụ thể dựa trên một số logic nhất định, thì điều khiển luồng và các câu lệnh điều kiện sẽ rất hữu ích.

Bạn sẽ hiểu rõ hơn khi chúng ta xem qua các câu lệnh khác nhau có sẵn trong C#.

Xin lưu ý rằng tất cả mã bên dưới được tạo thành tệp Program.cs.

1) Câu lệnh if

Câu lệnh if được sử dụng để đánh giá một biểu thức Boolean trước khi thực thi một tập hợp các câu lệnh. Nếu biểu thức được đánh giá là đúng, thì nó sẽ chạy một tập hợp các câu lệnh, ngược lại nó sẽ chạy một tập hợp các câu lệnh khác.

Trong ví dụ dưới đây, một phép so sánh được thực hiện cho một biến có tên là value. Nếu giá trị của biến nhỏ hơn 10, thì một câu lệnh sẽ được thực thi, ngược lại sẽ thực thi một câu lệnh khác.

Câu lệnh if

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program 
 {
  static void Main(string[] args) 
  {
   Int32 value = 11;
   
   if(value<10)
   {
    Console.WriteLine("Value is less than 10");
   }
   else
   {
    Console.WriteLine("Value is greater than 10");
   }
    Console.ReadKey();
  }
 }
}

Code Giải trình:-

  1. Đầu tiên chúng ta định nghĩa một biến có tên là value và đặt nó thành giá trị 11.
  2. Sau đó, chúng tôi sử dụng câu lệnh 'if' để kiểm tra xem giá trị có nhỏ hơn 10 của biến hay không. Kết quả sẽ là đúng hoặc sai.
  3. Nếu điều kiện if được đánh giá là đúng thì chúng tôi sẽ gửi thông báo “Giá trị nhỏ hơn 10” tới bảng điều khiển.
  4. Nếu điều kiện if được đánh giá là sai thì chúng tôi sẽ gửi thông báo “Giá trị lớn hơn 10” tới bảng điều khiển.

Nếu mã trên được nhập đúng và chương trình được thực thi thành công, kết quả sau sẽ được hiển thị.

Đầu ra:

Câu lệnh if

Chúng ta có thể thấy rõ rằng câu lệnh 'if' được đánh giá là sai. Do đó, thông báo “Giá trị lớn hơn 10” đã được gửi tới bảng điều khiển.

2) Câu lệnh chuyển đổi

Câu lệnh switch là một cải tiến của câu lệnh 'if'. Nếu bạn có nhiều biểu thức cần được đánh giá trong một lần thì việc viết nhiều câu lệnh 'if' sẽ trở thành một vấn đề.

Câu lệnh switch được sử dụng để đánh giá một biểu thức và chạy các câu lệnh khác nhau dựa trên kết quả của biểu thức đó. Nếu một điều kiện không được đánh giá là đúng thì câu lệnh switch sẽ chuyển sang điều kiện tiếp theo, v.v.

Hãy xem cách hoạt động của nó với ví dụ dưới đây. Ở đây, chúng ta lại so sánh giá trị của một biến có tên là 'value'. Sau đó, chúng ta kiểm tra xem giá trị có bằng 1, 2 hay một giá trị hoàn toàn khác hay không.

Chuyển đổi câu lệnh

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args) 
  {
   Int32 value=11;
   switch(value) 
   {
     case 1: Console.WriteLine("Value is 1");	
     break;
     case 2: Console.WriteLine("Value is 2");
     break;
     default: Console.WriteLine("value is different");
     break;
   }
  }
 }
}

Code Giải trình:-

  1. Trước tiên, chúng ta xác định một biến có tên là 'value' và đặt nó thành giá trị 11.
  2. Sau đó chúng tôi sử dụng câu lệnh 'switch' để kiểm tra giá trị của biến 'value.'
  3. Báo cáo trường hợp được sử dụng để đặt các điều kiện khác nhau. Dựa trên các điều kiện, một tập hợp các câu lệnh có thể được thực thi. Một câu lệnh switch có thể có nhiều điều kiện. Câu lệnh case đầu tiên kiểm tra xem giá trị của biến có bằng 1 hay không.
  4. Nếu câu lệnh trường hợp đầu tiên là đúng thì thông báo “Giá trị là 1” sẽ được ghi vào bảng điều khiển.
  5. Câu lệnh break được sử dụng để ngắt toàn bộ câu lệnh switch khi điều kiện là đúng.
  6. Điều kiện mặc định là một điều kiện đặc biệt. Điều này chỉ có nghĩa là nếu không có biểu thức trường hợp nào đánh giá là đúng thì hãy chạy tập hợp câu lệnh cho điều kiện mặc định.

Nếu mã trên được nhập đúng và chương trình được thực thi thành công, đầu ra sau sẽ được hiển thị. Đầu ra in ra giá trị mặc định “Giá trị khác”, vì không có điều kiện nào được thỏa mãn.

Đầu ra:

Chuyển đổi câu lệnh

3) Vòng lặp trong khi

Vòng lặp while được sử dụng cho mục đích lặp lại. Giả sử nếu bạn muốn lặp lại một tập hợp câu lệnh nhất định trong một số lần cụ thể thì vòng lặp while sẽ được sử dụng.

Trong ví dụ bên dưới, chúng tôi sử dụng câu lệnh while để hiển thị giá trị của biến 'i'. Câu lệnh while được sử dụng để hiển thị giá trị 3 lần.

Trong khi lặp lại

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args) 
  {
   Int32 value=3,i=0;
   
   while(i<value)
   {
    Console.WriteLine(i);
    i=i+1;
   }
    Console.ReadKey(); 
  }
 }
}

Code Giải trình:-

  1. Hai số nguyên biến được xác định, một là giá trị và một là 'i'. Biến giá trị được sử dụng làm giới hạn trên mà chúng ta nên lặp lại câu lệnh while của mình. Và 'i' là biến sẽ được xử lý trong quá trình lặp.
  2. Trong câu lệnh while, giá trị của 'i' liên tục được kiểm tra theo giới hạn trên.
  3. Ở đây chúng tôi hiển thị giá trị của 'i' cho bảng điều khiển. Chúng tôi cũng tăng giá trị của 'i'.

Nếu mã trên được nhập đúng và chương trình được thực thi thành công, kết quả sau sẽ được hiển thị.

Đầu ra:

Trong khi lặp lại

Ở đây bạn có thể thấy câu lệnh while được thực thi 3 lần và tăng dần cùng một lúc. Và mỗi lần như vậy, nó lại hiển thị giá trị hiện tại của biến 'i'.

4) Vòng lặp for

Vòng lặp 'for' cũng được sử dụng cho mục đích lặp lại. Giả sử bạn muốn lặp lại một tập hợp các câu lệnh nhất định một số lần cụ thể, thì vòng lặp for sẽ được sử dụng.

Trong ví dụ bên dưới, chúng tôi sử dụng câu lệnh 'for' để hiển thị giá trị của biến 'i'. Câu lệnh 'for' được sử dụng để hiển thị giá trị 3 lần.

Vòng lặp for

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args) 
  {
   for(Int32 i=0;i<3;i++)
   {
    Console.WriteLine(i);
   }
    Console.ReadKey(); 
  
  }
 }
}

Code Giải trình:-

  1. Từ khóa 'for' được sử dụng để bắt đầu câu lệnh 'for loop'.
  2. Trong 'vòng lặp for', chúng tôi xác định 3 điều. Đầu tiên là khởi tạo giá trị của một biến, giá trị này sẽ được sử dụng trong 'vòng lặp for'.
  3. Thứ hai là so sánh giá trị của 'i' với giới hạn trên. Trong trường hợp của chúng tôi, giới hạn trên là giá trị 3 (i<3).
  4. Cuối cùng, chúng tôi tăng giá trị của 'i' cho phù hợp.
  5. Ở đây chúng tôi hiển thị giá trị của 'i' cho bảng điều khiển.

Nếu mã trên được nhập đúng và chương trình được thực thi thành công, kết quả sau sẽ được hiển thị.

Đầu ra:

Vòng lặp for

Ở đây bạn có thể thấy câu lệnh 'for' được thực thi 3 lần. Và mỗi lần như vậy, nó lại hiển thị giá trị hiện tại của biến 'i'.

Câu Hỏi Thường Gặp

Câu lệnh if xử lý các phạm vi và các điều kiện Boolean phức tạp, trong khi câu lệnh switch so sánh một giá trị với nhiều nhãn trường hợp cố định. Switch gọn gàng hơn đối với nhiều giá trị rời rạc, trong khi if-else phù hợp với các phạm vi, nhiều biến và các toán tử logic.

Câu lệnh if lồng nhau đặt một câu lệnh if bên trong một câu lệnh if khác, do đó điều kiện bên trong chỉ được kiểm tra khi điều kiện bên ngoài đúng. Nó cho phép chương trình kiểm tra nhiều điều kiện phụ thuộc, mặc dù việc lồng nhau quá sâu làm giảm khả năng đọc hiểu.

Vòng lặp while kiểm tra điều kiện trước mỗi lần lặp, vì vậy nó có thể chạy không lần nào. Vòng lặp do-while kiểm tra điều kiện sau khi phần thân vòng lặp đã được thực thi, vì vậy nó luôn chạy ít nhất một lần, điều này phù hợp với menu và việc kiểm tra tính hợp lệ của dữ liệu đầu vào.

Lệnh `break` thoát khỏi vòng lặp hoặc câu lệnh `switch` ngay lập tức, trong khi lệnh `continue` bỏ qua phần còn lại của lần lặp hiện tại và chuyển sang lần lặp tiếp theo. Cả hai đều thay đổi luồng thực thi, nhưng chỉ `break` mới kết thúc hoàn toàn vòng lặp.

Toán tử ba ngôi ?: là một dạng viết gọn của câu lệnh if-else. Nó đánh giá một điều kiện, trả về giá trị đầu tiên khi điều kiện đúng và giá trị thứ hai khi điều kiện sai, tạo ra một phép gán ngắn gọn chỉ trong một dòng.

Vòng lặp foreach lặp qua mọi phần tử của một tập hợp như mảng hoặc danh sách mà không cần chỉ mục hoặc bộ đếm. Nó đọc tập hợp một cách an toàn và ngăn ngừa các lỗi thường gặp như lỗi lệch một đơn vị và lỗi vượt quá phạm vi.

Đúng vậy. GitHub Copilot đề xuất các khối if, switch, while và for từ một bình luận hoặc tên phương thức bên trong Visual Studio. VS Code. RevHãy xem xét kỹ từng đề xuất để đảm bảo các điều kiện và giới hạn vòng lặp chính xác, vì Copilot có thể gây ra lỗi sai lệch một đơn vị.

Các pipeline của ML.NET sử dụng các câu lệnh điều kiện C# để phân nhánh dựa trên giá trị thuộc tính và vòng lặp để lặp lại các hàng dữ liệu huấn luyện. Logic if, switch và for tương tự được sử dụng để chuẩn bị dữ liệu và định tuyến dự đoán, giữ cho quá trình diễn ra suôn sẻ.ping Một quy trình làm việc học máy được định kiểu mạnh.

Tóm tắt bài viết này với: