Bài 2: Biến, Kiểu dữ liệu và Ép kiểu trong C#
🎯 Mục tiêu bài học
Sau khi hoàn thành bài này, bạn sẽ nắm được:
-
Cách khai báo và sử dụng biến để lưu trữ dữ liệu.
-
Phân biệt được các kiểu dữ liệu cơ bản (số nguyên, số thực, chuỗi, boolean).
-
Cách chuyển đổi qua lại giữa các kiểu dữ liệu (Ép kiểu - Type Casting).
📖 Phần 1: Biến và Kiểu dữ liệu cơ bản
Trong lập trình, Biến (Variable) giống như một cái hộp dùng để chứa dữ liệu. Để tạo ra chiếc hộp này, bạn cần dán nhãn cho nó: chiếc hộp này tên là gì và nó được phép chứa loại đồ vật nào (Kiểu dữ liệu - Data Type).
Cú pháp khai báo biến
C#
[Kiểu_dữ_liệu] [Tên_biến] = [Giá_trị_khởi_tạo];
Các kiểu dữ liệu phổ biến nhất
Trong C#, có rất nhiều kiểu dữ liệu, nhưng ở mức cơ bản, bạn chỉ cần làm chủ 5 kiểu này:
-
int(Số nguyên): Dùng cho các số không có phần thập phân (vd: -10, 0, 2026). -
double(Số thực): Dùng cho các số có phần thập phân (vd: 3.14, -0.5). -
string(Chuỗi ký tự): Dùng cho văn bản, giá trị phải được đặt trong dấu ngoặc kép" "(vd: "Hello", "Backend Developer"). -
char(Ký tự): Dùng cho một ký tự duy nhất, đặt trong dấu nháy đơn' '(vd: 'A', 'x'). -
bool(Boolean): Chỉ nhận đúng 2 giá trị:true(đúng) hoặcfalse(sai).
Ví dụ thực tế:
C#
string fullName = "Nguyen Minh Hieu";
int birthYear = 2004;
double gpa = 3.8;
bool isGraduated = true;
"Vũ khí bí mật": Từ khóa var
Thay vì phải nhớ chính xác kiểu dữ liệu, C# cho phép bạn dùng từ khóa var. Trình biên dịch sẽ tự động đoán kiểu dữ liệu dựa vào giá trị bạn gán cho nó.
C#
var currentYear = 2026; // C# tự hiểu đây là int
var role = "Backend Developer"; // C# tự hiểu đây là string
Lưu ý: Khi dùng var, bạn bắt buộc phải gán giá trị ngay lúc khai báo.
📖 Phần 2: Ép kiểu (Type Casting)
Thường xuyên có những trường hợp bạn cần lấy dữ liệu từ một chiếc hộp loại này bỏ sang chiếc hộp loại khác (ví dụ: chuyển từ số thực sang số nguyên, hoặc từ chuỗi văn bản sang số để tính toán). Quá trình này gọi là Ép kiểu.
Có 3 hình thức ép kiểu chính:
1. Ép kiểu ngầm định (Implicit Casting)
Chuyển từ kiểu dữ liệu nhỏ sang kiểu lớn hơn (không sợ mất dữ liệu). C# sẽ tự động làm việc này.
C#
int myInt = 10;
double myDouble = myInt; // Tự động chuyển thành 10.0
2. Ép kiểu tường minh (Explicit Casting)
Chuyển từ kiểu lớn sang kiểu nhỏ hơn. Bạn phải ép buộc C# làm điều này và chấp nhận rủi ro mất dữ liệu (như mất phần thập phân). Cú pháp: Đặt kiểu dữ liệu đích trong dấu () phía trước giá trị.
C#
double pi = 3.14;
int roundedPi = (int)pi; // Bị ép về số nguyên, kết quả là 3 (mất phần .14)
3. Chuyển đổi từ Chuỗi sang Số (Parsing/Converting)
Đây là trường hợp bạn sẽ gặp 100% khi làm thực tế: Lấy dữ liệu người dùng nhập từ bàn phím (luôn là chuỗi string) và chuyển thành số để tính toán.
C#
string input = "2004";
// Cách 1: Dùng Parse
int year1 = int.Parse(input);
// Cách 2: Dùng thư viện Convert
int year2 = Convert.ToInt32(input);
💻 Phần 3: Thực hành
Chúng ta sẽ viết một chương trình nhỏ: Nhập năm sinh từ bàn phím và tính số tuổi hiện tại.
Vào Visual Studio / VS Code, thay thế nội dung file Program.cs bằng đoạn code sau:
C#
using System;
namespace Lesson2
{
class Program
{
static void Main(string[] args)
{
// 1. Khai báo biến lưu năm hiện tại
int currentYear = 2026;
// 2. Yêu cầu người dùng nhập năm sinh
Console.Write("Moi ban nhap nam sinh: ");
string inputYear = Console.ReadLine(); // Dữ liệu nhập vào luôn là chuỗi (string)
// 3. Ép kiểu từ string sang int để có thể làm toán
int birthYear = int.Parse(inputYear);
// 4. Tính toán
int age = currentYear - birthYear;
// 5. In kết quả ra màn hình (Sử dụng $ đứng trước chuỗi để nối biến cực nhanh)
Console.WriteLine($"Ban sinh nam {birthYear}, nam nay ban {age} tuoi.");
Console.ReadLine();
}
}
}
Mẹo C# hiện đại: Ký tự
$đặt trước chuỗi""được gọi là String Interpolation. Nó cho phép bạn nhúng trực tiếp biến vào trong chuỗi bằng dấu{}(như{age}) thay vì phải dùng dấu cộng+nối chuỗi thủ công cồng kềnh.
📝 Tóm tắt bài học
-
Biến được khai báo theo cú pháp:
Kiểu_dữ_liệu Tên_biến = Giá_trị; -
Các kiểu dữ liệu cốt lõi:
int(số nguyên),double(số thực),string(chuỗi),bool(đúng/sai). -
Ép kiểu tường minh cần dùng dấu
(Kiểu_dữ_liệu). -
Để đổi chuỗi thành số, sử dụng
int.Parse()hoặcConvert.ToInt32().
🛠 Bài tập thực hành
Yêu cầu: Hãy viết chương trình tính chỉ số BMI (Body Mass Index).
-
Yêu cầu người dùng nhập vào Cân nặng (kg) và Chiều cao (mét). (Gợi ý: Dùng
Console.ReadLine()). -
Chuyển đổi dữ liệu nhập vào thành kiểu
double. -
Áp dụng công thức:
BMI = Cân nặng / (Chiều cao * Chiều cao) -
In chỉ số BMI ra màn hình.
All Rights Reserved