Các lệnh rẽ nhánh yêu cầu lập trình viên chỉ định một hoặc nhiều điều kiện để chương trình kiểm tra. Các câu lệnh được thực thi nếu điều kiện được xác định là đúng, các câu lệnh khác sẽ được thực thi nếu điều kiện được xác định là sai.
Sau đây là lược đồ chung của cấu trúc lệnh rẽ nhánh điển hình được tìm thấy trong hầu hết các ngôn ngữ lập trình:
C# cung cấp các loại lệnh rẽ nhánh sau:
Lệnh | Miêu tả |
---|---|
if | Một lệnh if bao gồm một biểu thức logic theo sau bởi một hoặc nhiều lệnh khác. |
if...else | Một lệnh if có thể theo sau bởi một lệnh else (tùy ý: có hoặc không), mà có thể được thực hiện khi biểu thức logic có giá trị false. |
if...else lồng nhau | Bạn có thể sử dụng lệnh if hoặc lệnh else if bên trong lệnh if hoặc else if khác |
switch case | Lệnh switch case cho phép kiểm tra điều kiện của một biến trước khi thực thi các lệnh |
switch lồng nhau | Bạn có thể sử dụng một lệnh switch bên trong một lệnh switch khác |
Lệnh if trong C# chứa một biểu thức logic được theo sau bởi một hoặc nhiều lệnh.
if (boolean_expression)
{
// statement(s)
}
Nếu biểu thức logic boolean_expression của câu lệnh if là true, thì khối code bên trong lệnh if sẽ được thực thi. Ngược lại thì sẽ bỏ qua lệnh if.
using System;
namespace DecisionMaking
{
class Program
{
static void Main(string[] args)
{
// local variable definition
int a = 10;
// check the boolean condition using if statement
if (a < 20)
{
// if condition is true then print the following
Console.WriteLine("a is less than 20");
}
Console.WriteLine("value of a is : {0}", a);
Console.ReadLine();
}
}
}
Biên dịch và chạy chương trình sẽ cho kết quả như sau:
a is less than 20;
value of a is : 10
Một lệnh if trong C# có thể được theo sau bởi một lệnh else tùy ý. Khối code sau lệnh else sẽ được thực hiện khi biểu thức logic là false.
if (boolean_expression)
{
// statement(s) will execute if the boolean expression is true
}
else
{
// statement(s) will execute if the boolean expression is false
}
Nếu biểu thức logic được ước lượng là true, thì khi đó khối if sẽ được thực thi, nếu không thì khối else sẽ được thực thi.
using System;
namespace DecisionMaking
{
class Program
{
static void Main(string[] args)
{
// local variable definition
int a = 100;
// check the boolean condition
if (a < 20)
{
// if condition is true then print the following
Console.WriteLine("a is less than 20");
}
else
{
// if condition is false then print the following
Console.WriteLine("a is not less than 20");
}
Console.WriteLine("value of a is : {0}", a);
Console.ReadLine();
}
}
}
Đây là kết quả khi biên dịch và chạy chương trình:
a is not less than 20;
value of a is : 100
Tip: Nếu lệnh if...else được sử dụng để kiểm tra điều kiện và trả về dữ liệu thì bạn có thể dùng biểu thức tam phân để thay thế giúp code ngắn gọn, dễ đọc và dễ hiểu.
Ví dụ sử dụng biểu thức tam phân thay thế if...else:
// some code
int a = 100, b = 30;
// lệnh rẽ nhánh if...else
if (a < 20)
{
return b;
}
else
{
return a;
}
// có thể sử dụng biểu thức tam phân để thay thế như sau
return a < 20 ? b : a;
Tip: nếu lệnh if...else được sử dụng để kiểm tra điều kiện null trước khi trả về dữ liệu chúng ta có thể sử dụng toán tử ?? để code ngắn gọn và dễ đọc.
Ví dụ sử dụng toán tử ?? thay thế cho if...else:
// some code
string a = null, b = "text";
// lệnh if...else
if (a != null)
{
return a;
}
else
{
return b;
}
// sử dụng toán tử ??
return a ?? b;
Best practice: nên sử dụng phương thức string.IsNullOrEmpty(variable) để kiểm tra chuỗi bị null thay vì dùng biểu thức variable == null. Như ví dụ trên sẽ sửa lại thành if (!string.IsNullOrEmpty(a))
Một lệnh if có thể được theo sau bởi một lệnh else if…else tùy ý, mà rất có ích để kiểm tra các điều kiện đa dạng.
Khi sử dụng lệnh if, else if, else, có một số điểm chính cần ghi nhớ:
if (boolean_expression_1)
{
// Executes when the boolean expression 1 is true
}
else if ( boolean_expression_2)
{
// Executes when the boolean expression 2 is true
}
else if ( boolean_expression_3)
{
// Executes when the boolean expression 3 is true
}
else
{
// executes when the none of the above condition is true
}
using System;
namespace DecisionMaking
{
class Program
{
static void Main(string[] args)
{
// local variable definition
int a = 100;
// check the boolean condition
if (a == 10)
{
// if condition is true then print the following
Console.WriteLine("Value of a is 10");
}
else if (a == 20)
{
// if else if condition is true
Console.WriteLine("Value of a is 20");
}
else if (a == 30)
{
// if else if condition is true
Console.WriteLine("Value of a is 30");
}
else
{
// if none of the conditions is true
Console.WriteLine("None of the values is matching");
}
Console.WriteLine("Exact value of a is: {0}", a);
Console.ReadLine();
}
}
}
Kết quả trả về sau khi biên dịch chương trình:
None of the values is matching
Exact value of a is: 100
Bạn có thể biên dịch và xem kết quả online của lệnh if...else if...else trong C# tại đây.
Lệnh switch case trong C# sẽ kiểm tra giá trị của một biến trong danh sách các giá trị. Mỗi giá trị của biến được gọi là một case (trường hợp).
switch (expression)
{
case constant-expression_1:
// statement(s);
break;
case constant-expression_2:
case constant-expression_3:
// statement(s);
break;
// you can have any number of case statements
default : // Optional
// statement(s);
break;
}
using System;
namespace DecisionMaking
{
class Program
{
static void Main(string[] args)
{
// local variable definition
char grade = 'B';
switch (grade)
{
case 'A':
Console.WriteLine("Excellent!");
break;
case 'B':
case 'C':
Console.WriteLine("Well done");
break;
case 'D':
Console.WriteLine("You passed");
break;
case 'F':
Console.WriteLine("Better try again");
break;
default:
Console.WriteLine("Invalid grade");
break;
}
Console.WriteLine("Your grade is {0}", grade);
Console.ReadLine();
}
}
}
Kết quả khi biên dịch và chạy chương trình:
Well done
Your grade is B
Bạn có thể tự biên dịch và xem kết quả online của lệnh switch case trong C# tại đây.
Tip: Với lệnh if...else if...else if...else được sử dụng để kiểm tra các giá trị của một biến thì bạn có thể sử dụng lệnh switch case để thay thế. Việc này sẽ giúp code của bạn rất trong sáng và dễ đọc.
Bạn hoàn toàn có thể sử dụng các lệnh switch case lồng nhau trong C#.
switch (ch1)
{
case 'A':
Console.WriteLine("This A is part of outer switch" );
switch (ch2)
{
case 'A':
Console.WriteLine("This A is part of inner switch" );
break;
case 'B':
// outer B case code
break;
}
break;
case 'B':
// outer B case code
break;
}
using System;
namespace DecisionMaking
{
class Program
{
static void Main(string[] args)
{
int a = 100;
int b = 200;
switch (a) {
case 100:
Console.WriteLine("This is part of outer switch ");
switch (b)
{
case 200:
Console.WriteLine("This is part of inner switch ");
break;
}
break;
}
Console.WriteLine("Exact value of a is : {0}", a);
Console.WriteLine("Exact value of b is : {0}", b);
Console.ReadLine();
}
}
}
Kết quả chương trình trả về:
This is part of outer switch
This is part of inner switch
Exact value of a is : 100
Exact value of b is : 200
Bạn có thể biên dịch và xem kết quả online của lệnh switch case lồng nhau trong C# tại đây.
Bài viết này đã trình bày chi tiết về các lệnh rẽ nhánh trong C# như if, if...else, if...else if...else và switch case.
Nếu bạn có bất kỳ thắc mắc gì về lệnh rẽ nhánh trong C#, đừng ngần ngại để lại comment ở bên dưới. Mình sẽ cố gắng giải đáp sớm trong vòng 24 giờ.
Bạn có muốn xem bài viết tiếp theo không? Nó ở dưới đây nè.
Bạn có thể vui lòng tắt trình chặn quảng cáo ❤️ để hỗ trợ chúng tôi duy trì hoạt động của trang web.
Trong loạt bài này, tôi sẽ xem xét một số
Ngôn ngữ C# đã bật các bộ tăng áp liên
Trong bài viết này, chúng ta sẽ tìm hiểu lớp tiện ích ZipFile trong C#, cách nén tập tin và thư mục, cùng với giải nén tập tin zip.
Bài viết này sẽ giới thiệu cách đơn giản nhất mà tôi đã tìm thấy để đọc và ghi file Excel bằng C# sử dụng ExcelMapper.