Nhập xuất trong C# được sử dụng một cách thường xuyên khi mà chúng ta làm việc với các project Console hay những chương trình dòng lệnh, nhập xuất giúp chúng ta có thể nhập vào để test chương trình hoặc là xuất các thông tin cần thiết để có thể debug chương trình, từ đó suy ra phương hướng để chúng ta cải thiện chương trình của mình. Việc nhập xuất trong các chương trình máy tính diễn ra thường xuyên mà tất cả các lập trình viên đều phải biết tới nó. Và nhập xuất trong C# cũng sẽ là chủ đề mà chúng ta sẽ bàn luận ngày hôm nay.
Nhập xuất trong C#
In dữ liệu ra màn hình
In dữ liệu ra màn hình hay xuất dữ liệu ra màn hình, như đã trình bày ở trên, nó giúp chúng ta in lên màn hình những thông tin cần thiết dành cho người dùng hoặc là các thông tin dành cho lập trình viên. Ở phần này, chúng ta sẽ đi tìm hiểu 2 lệnh xuất ra màn hình đơn giản nhất trong C# trong lớp Console
.
Phương thức Write và WriteLine trong lớp Console
Phương thức Write và WriteLine nghe tên thì có vẻ giống nhau nhưng chúng ta có thể dễ dàng phân biệt nó như sau:
- Phương thức
WriteLine
cho phép chúng ta xuất dữ liệu ra màn hình và sẽ xuống dòng khi kết thúc câu lệnh. - Ngược lại phương thức
Write
cũng sẽ cho phép chúng ta xuất dữ liệu ra màn hình nhưng khi kết thúc câu lệnh đó sẽ không in xuống dòng.
Để dễ hiểu hơn chúng ta xét ví dụ về câu lệnh WriteLine
như sau:
using System; namespace luyencodec_ { class Program { static void Main(String[] args) { Console.WriteLine("Lap trinh ... "); Console.WriteLine("Khong Kho !"); Console.ReadKey(); // dừng màn hình } } }
Khi chạy đoạn code trên chúng ta có kết quả:
Như chúng ta có thể thấy ở dòng số 9. Sau khi kết thúc câu lệnh thì chương trình ngay lập tức xuống dòng để thực hiện câu lệnh tiếp theo ở dòng số 10.
Tương tự như vậy chúng ta có ví dụ với câu lệnh Write
như sau:
using System; namespace luyencodec_ { class Program { static void Main(String[] args) { Console.Write("Lap trinh ... "); Console.Write("Khong Kho !"); Console.ReadKey(); // dừng màn hình } } }
Chương trình lúc này sẽ cho ra kết quả như sau:
Như vậy ở ví du này ở dòng số 9 và dòng số 10 khi chúng ta thay đổi từ câu lệnh WriteLine
sang Write
thì chương trình đã không xuống dòng, điều này được thể hiện khi 2 câu lệnh xuất ra lại xuất ra trên cùng một dòng.
Ngoài ra, các bạn có thể dùng các câu lệnh nhập xuất để có thể xuất ra một biến số hoặc một biểu thức số:
using System; namespace luyencodec_ { class Program { static void Main(String[] args) { int a = 10; int b = 20; Console.WriteLine(a + b); Console.ReadKey(); // dừng màn hình } } }
Ví dụ này chương trình cho chúng ta kết quả
30
Từ các ví dụ trên, chúng ta rút ra cách để sử dụng câu lệnh Write
và WriteLine
trong C#:
Console.Write(<một chuỗi ký tự hoặc một biểu thức số>); Console.WriteLine(<một chuỗi ký tự hoặc một biểu thức số>);
In màu ra màn hình với lớp Console
Có lẽ đây là phần thú vị và màu sắc nhất trong bài viết lần này khi chúng ta sẽ được tìm hiểu cách để in ra màu trong C#.
- Để thay đổi được màu chữ khi xuất ra màn hình chúng ta thay đổi giá trị màu của thuộc tính (property)
ForegroundColor
của lớpConsole
. - Để thay đổi được màu nền phái sau văn bản xuất ra màn hình chúng ta thay đổi giá trị màu của thuộc tính (property)
BackgroundColor
của lớpConsole
. - Khi chúng ta không còn muốn một chút màu mè và muốn các giá trị màu của 2 thuộc tính
ForegroundColor
vàBackgroundColor
ra sử dụng phương thứcResetColor
của lớpConsole
. - Các giá trị màu được Microsoft hỗ trợ sẽ nằm bên trong enum
ConsoleColor
.
Chúng ta xét một ví dụ đơn giản về xuất màu trong C#:
using System; namespace luyencodec_ { class Program { static void Main(String[] args) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Lap trinh khong kho !"); Console.ResetColor(); Console.BackgroundColor = ConsoleColor.Blue; Console.WriteLine("Discord: https://discord.gg/hpeRrbccfZ"); Console.ReadKey(); // dừng màn hình } } }
Chương trình sẽ in ra màu và dòng chữ như sau:
Lưu ý: Giá trị màu trong 2 thuộc tính ForegroundColor
và BackgroundColor
sẽ được in ra chính giá trị màu đó cho tới khi giá trị màu trong 2 thuộc tính này được thay đổi.
Nhập dữ liệu từ bàn phím
Trong một ngôn ngữ lập trình thì việc chỉ in ra màn hình thôi là chưa đủ, chúng ta cần những câu lệnh nhập vào để test chương trình cũng như lấy dữ liệu khi người dùng nhập vào. Việc nhập dữ liệu từ bàn phím trong C# được hỗ trợ bởi 2 phương thức Read
và ReadLine
trong lớp Console
.
- Phương thức
Read
sẽ đọc từng ký tự do người dùng nhập vào và giá trị trả về sẽ là ký tử trong bảng mã ASCII của ký tự đó. Khi không còn chữ cái nào trong dữ liệu đầu vào phương thức này trả về giá trị là -1. - Phương thức
ReadLine
sẽ đọc theo từng dòng của dữ liệu nhập vào. Phương thức này trả về một giá trị nullable kiểustring
. Khi đã hết dữ liệu nhập vào mà phương thức này vẫn được gọi phương thức sẽ trả về giá trịnull
.
Chúng ta xét thử chương trình sau với dữ liệu nhập vào là 01
:
using System; namespace luyencodec_ { class Program { static void Main(String[] args) { int a = Console.Read(); Console.WriteLine(a); Console.ReadKey(); // dừng màn hình } } }
Khi chúng ta nhập 01
vào chương trình trên chương trình cho ra kết quả:
Chúng ta có thể thấy chương tình chỉ nhập vào một ký tự duy nhất là ký tự 0
và biến a
mang giá trị ASCII của ký tự 0
.
Khi chúng ta thêm một lệnh Read
nữa:
using System; namespace luyencodec_ { class Program { static void Main(String[] args) { int a = Console.Read(); Console.WriteLine(a); int b = Console.Read(); Console.WriteLine(b); Console.ReadKey(); // dừng màn hình } } }
Lúc này chương trình lại xuất ra như sau:
Như vậy câu lệnh Read tiếp theo đã đọc tiếp ký tự 1 trong dữ liệu nhập vào (49 là mã ASCII của chữ cái ‘1’).
Đối với phương thức ReadLine thì lại dễ hiểu hơn chúng ta xét một ví dụ như sau:
using System; namespace luyencodec_ { class Program { static void Main(String[] args) { string s = Console.ReadLine(); Console.WriteLine(s); Console.ReadKey(); // dừng màn hình } } }
Chương trình này khi nhập vào Hello, world
cũng sẽ cho giá trị tương tự là Hello, world
vì chúng ta chỉ xuất ra chuỗi s
mà không in thêm gì khác:
Như vậy chúng ta dễ dàng có thể hiểu được cách nhập dữ liệu trong C#.
Tổng kết
Như vậy là trong bài viết này, mình đã hướng dẫn các bạn cách để nhập xuất trong C# đồng thời in màu lên màn hình để chương trình bớt nhàm chán tươi mới hơn, ngoài ra các bạn có thể tham khảo thêm về enum ConsoleColor
tại đây. Hoặc là các phương thức khác trong class Console
tại đây. Ngoài ra, các bạn có thể làm vài bài tập cơ bản sau:
Cảm ơn bạn đã đọc bài viết này. Hãy tiếp tục đồng hành cùng Lập trình không khó trong các bài viết tiếp theo nhé !
Để lại một bình luận