Output là những gì chương trình in ra cho người dùng thấy. Trong C# chạy trên cửa sổ dòng lệnh, bạn in bằng Console.WriteLine và Console.Write. Trang này cũng nói về comment: những dòng ghi chú mà trình biên dịch bỏ qua.
Console.WriteLine
WriteLine in ra nội dung rồi xuống dòng. Lệnh in tiếp theo sẽ bắt đầu ở dòng mới.
Console.WriteLine("Nhiệm vụ: Diệt 10 con Slime");
Console.WriteLine("Phần thưởng: 100 vàng");
// Nhiệm vụ: Diệt 10 con Slime
// Phần thưởng: 100 vàng
In số thì không cần dấu nháy:
Console.WriteLine(42); // 42
Console.WriteLine(10 + 5); // 15
Chú ý dòng thứ hai: C# tính 10 + 5 trước rồi mới in 15. Nếu bạn viết "10 + 5" trong dấu nháy thì nó in nguyên văn chữ 10 + 5.
Console.Write
Write in ra mà không xuống dòng. Lệnh in sau sẽ nối tiếp ngay trên cùng dòng.
Console.Write("HP: ");
Console.Write(80);
Console.Write("/100");
// HP: 80/100
Người mới hay dùng Write rồi thắc mắc sao mọi thứ dính thành một dòng dài. Quy tắc dễ nhớ: muốn xuống dòng thì dùng WriteLine. Dùng Write khi muốn ghép nhiều mảnh vào cùng một dòng, như thanh máu ở trên.
Gọi Console.WriteLine() không có gì trong ngoặc sẽ in ra một dòng trống. Hay dùng để ngăn cách các phần:
Console.Write("Vàng: ");
Console.WriteLine(250);
Console.WriteLine();
Console.WriteLine("Kho đồ trống.");
// Vàng: 250
//
// Kho đồ trống.
Ghép chữ và số
Dùng dấu + để nối chữ với số trong một lần in:
int gold = 250;
Console.WriteLine("Bạn có " + gold + " vàng"); // Bạn có 250 vàng
Có cách gọn hơn là chuỗi nội suy $"...", sẽ học ở trang chuỗi.
Lỗi hay gặp: quên dấu nháy kép quanh chữ, ví dụ
Console.WriteLine(Game Over);. C# hiểuGamelà tên biến và báo lỗi CS0103 (không tìm thấy tên) cùng CS1003 (lỗi cú pháp). Chữ muốn in nguyên văn phải nằm trong"...".
Comment một dòng
Mọi thứ sau // tới hết dòng là comment. Chương trình chạy như thể dòng đó không có.
// Máu tối đa của người chơi
int maxHp = 100;
int hp = maxHp; // bắt đầu với đầy máu
Console.WriteLine(hp); // 100
Comment dùng để giải thích vì sao code viết như vậy, không phải kể lại code làm gì. Viết // cộng 1 vào level ngay trên level++ là thừa. Viết // qua boss thì lên cấp ngay, không chờ đủ kinh nghiệm thì có ích.
Comment nhiều dòng
Bọc đoạn ghi chú dài giữa /* và */:
/*
Công thức sát thương tạm thời.
Sẽ đổi khi có hệ thống giáp.
*/
int damage = 12;
Console.WriteLine(damage); // 12
Tắt tạm một dòng code
Comment còn dùng để tắt tạm một lệnh mà không xoá nó, tiện khi thử nghiệm:
Console.WriteLine("Bắt đầu màn 1");
// Console.WriteLine("Debug: vị trí người chơi = 0");
Console.WriteLine("Quái xuất hiện!");
// Bắt đầu màn 1
// Quái xuất hiện!
Trong VS Code, bôi đen vài dòng rồi bấm Ctrl+/ để comment hoặc bỏ comment cả khối.
Bài tập
In ra khung thông tin nhân vật đúng như sau, dùng ít nhất một lần Console.Write:
Tên: Aki
HP: 90/100
Xem đáp án
Console.WriteLine("Tên: Aki");
Console.Write("HP: ");
Console.Write(90);
Console.WriteLine("/100");
// Tên: Aki
// HP: 90/100