1.3 — 2. Điều Kiện (Conditions)
Mục tiêu bài học
- Nắm được ý chính của bài và mối liên hệ với module.
- Áp dụng được kiến thức vào bối cảnh CRM/.NET backend.
- Sẵn sàng chuyển sang bài kế tiếp với nền tảng chắc chắn.
Nội dung bài học
1.3.1 — if / else
Điều kiện cho phép chương trình ra quyết định: nếu điều này đúng thì làm A, ngược lại làm B.
int diemKhachHang = 650;
if (diemKhachHang >= 500)
{
Console.WriteLine("Khách hàng VIP — được giảm 15%");
}
else if (diemKhachHang >= 200)
{
Console.WriteLine("Khách hàng Bạc — được giảm 5%");
}
else
{
Console.WriteLine("Khách hàng Thường — không có ưu đãi");
}
1.3.2 — Toán tử điều kiện (ternary)
Dùng khi muốn viết gọn một điều kiện đơn giản:
// Cú pháp: điều_kiện ? giá_trị_nếu_đúng : giá_trị_nếu_sai
string hangKhach = diemKhachHang >= 500 ? "VIP" : "Thường";
Console.WriteLine($"Hạng: {hangKhach}");
1.3.3 — Ví dụ thực tế: tính phí giao hàng theo giá trị đơn
Trong CRM/ERP, phí vận chuyển thường thay đổi theo tổng tiền đơn hàng:
decimal giaTriDon = 420_000m;
decimal phiVanChuyen = giaTriDon >= 500_000m ? 0m : 30_000m;
Console.WriteLine($"Phí vận chuyển: {phiVanChuyen:n0} VND");
Ví dụ này giúp bạn thấy rõ cách dùng điều kiện để xử lý rule nghiệp vụ rất thường gặp.
1.3.4 — switch
Dùng khi có nhiều nhánh dựa trên cùng một biến:
string trangThaiLead = "new"; // Trạng thái lead trong CRM
switch (trangThaiLead)
{
case "new":
Console.WriteLine("Lead mới — cần liên hệ trong 24 giờ");
break;
case "contacted":
Console.WriteLine("Đã liên hệ — chờ phản hồi");
break;
case "qualified":
Console.WriteLine("Đủ điều kiện — chuyển sang sales");
break;
case "lost":
Console.WriteLine("Đã mất — lưu lý do để phân tích");
break;
default:
Console.WriteLine("Trạng thái không xác định");
break;
}
1.3.5 — switch expression (C# 8+)
Cú pháp hiện đại hơn, gọn hơn:
string moTaTrangThai = trangThaiLead switch
{
"new" => "Lead mới",
"contacted" => "Đã liên hệ",
"qualified" => "Đủ điều kiện",
"lost" => "Đã mất",
_ => "Không xác định" // _ là default
};
Console.WriteLine(moTaTrangThai);
Bài tập áp dụng
- Tóm tắt bài học bằng ngôn ngữ của bạn.
- Liên hệ nội dung với một tình huống thực tế trong dự án.
- Đề xuất một cải tiến cụ thể sau khi học bài này.
Tự kiểm tra
- Bạn có thể giải thích lại nội dung chính trong 2 phút không?
- Bạn có ví dụ áp dụng thực tế chưa?
- Bạn biết bước tiếp theo cần học/triển khai là gì không?
Kết luận
Hoàn thành bài này giúp bạn có góc nhìn đầy đủ hơn trước khi đi tiếp trong module.
Điều hướng
- Bài trước: 1.2 — 1. Biến và Kiểu Dữ Liệu
- Bài tiếp theo: 1.4 — 3. Vòng Lặp (Loops)
- Về module: Trang mục lục