Chào mừng các bạn đến với bài học Java số 7, nơi chúng ta sẽ tìm hiểu về cách nhập và xuất dữ liệu trên Console. Bài học này là một phần trong chuỗi bài học lập trình ngôn ngữ Java của Yellow Code Books.
Trước tiên, hãy cùng nhau khám phá khái niệm về Console. Console có thể được hiểu như một bảng điều khiển chuyên dụng, tương tự như các Game Console được sử dụng để điều khiển trò chơi, hoặc các trang web quản lý có thể coi là các Console dành riêng cho việc quản lý.
Trong lập trình, Console được sử dụng như một cách đơn giản nhất để điều khiển ứng dụng thông qua các dòng text (dòng lệnh), khác biệt với giao diện người dùng (UI).
Chúng ta sẽ sử dụng một "công cụ" trên Console để thực hiện việc nhập/xuất thông tin. Công cụ này cho phép chúng ta nhập dữ liệu từ bàn phím, sau đó chuyển dữ liệu này vào chương trình để xử lý và xuất kết quả qua màn hình Console.
Sau khi hoàn thành bài học này, bạn có thể thoải mái thực hiện các dòng code để hỗ trợ quá trình học Java của bạn. Tuy nhiên, trước khi đi vào việc thực hành, hãy cùng tìm hiểu thêm về khái niệm này.
Console là gì?
Console có thể được xem như là một cửa sổ hiển thị dành riêng cho việc nhập và xuất dữ liệu trong chương trình Java. Trong các bài học trước, bạn đã làm quen với cửa sổ Console khi thực thi chương trình.
Chúng ta sẽ tìm hiểu cách nhập dữ liệu từ Console. Để bắt đầu, hãy mở IntelliJ và mở lại project "HelloWorld" như đã tạo từ bài học trước.
Đầu tiên, hãy thử khai báo một đối tượng Scanner như sau:
Scanner scanner = new Scanner(System.in);
Các bạn không cần quá lo lắng về lớp và đối tượng trong Java, chúng ta sẽ tìm hiểu chi tiết hơn về khái niệm này trong bài học về OOP (hướng đối tượng). Nhưng để hiểu sơ qua, đối tượng tương tự như biến, bạn có thể đặt tên cho đối tượng tùy ý. Trong ví dụ trên, chúng ta đã khai báo một đối tượng của lớp Scanner với tên là "scanner". Điểm khác biệt của đối tượng so với biến là đối tượng của lớp phải được khởi tạo bằng từ khóa "new". Và đây là đoạn code hoàn chỉnh:
public class MyFirstClass { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); } }
Lan Man Về Cách Thức Bạn Code
Ở mục này, cho phép mình nói lan man về kinh nghiệm code một chút. Thường thì sau khi gõ dòng code trên, IntelliJ có thể sẽ báo lỗi như hình dưới đây:
Lỗi này xảy ra vì hệ thống không biết lớp Scanner là gì. Điều này xảy ra vì trước đây chúng ta chỉ sử dụng các biến nguyên thủy hoặc các lớp nằm trong package "java.lang". Việc sử dụng các lớp khác cần khai báo chúng thông qua từ khóa "import". Các dòng "import" thường được khai báo ở đầu mỗi file. Mỗi dòng "import" bao gồm từ khóa "import" và sau đó là package chứa lớp cần sử dụng.
Ở ví dụ trên, để import đúng package chưa lớp Scanner, bạn có thể sử dụng một trong những cách sau:
Sử Dụng Gợi Ý Hoàn Thành Code Từ IDE
Đây là cách đơn giản nhất để IntelliJ tự động import một package cho bạn.
Bạn chỉ cần gõ vài từ vào IDE, bạn sẽ thấy các gợi ý hoàn thành dòng code. Nhấn "Enter" nếu gợi ý đầu tiên là đúng, hoặc chọn gợi ý khác và nhấn "Enter". Kết quả sẽ là dòng code được tự động hoàn thành và cũng import package "java.util.Scanner" cho bạn.
Kêu IDE Import Giúp
Đôi khi, IDE không đưa ra bất kỳ gợi ý hoàn thành nào cho bạn. Trong trường hợp này, hãy gõ hết tất cả các dòng code cần thiết, không quan tâm đến lỗi. Sau khi gõ xong, IDE sẽ hiển thị các hướng dẫn để sửa lỗi trên trình chỉnh sửa mã nguồn.
Ví dụ sau là điển hình, sau khi gõ xong, bạn sẽ thấy các vị trí bị tô đỏ. Khi đưa con trỏ chuột vào những vị trí đó, nếu là lỗi thiếu import, bạn sẽ nhìn thấy một popup hiện ra, chỉ cần nhấn "Import Class".
Import Thủ Công
Cách này dành cho những bạn đã biết chính xác lớp nào nằm trong package nào và bạn có thể import thủ công.
Sau quá trình import, bạn có thể chạy lại chương trình và sẽ không có lỗi nữa.
Ví Dụ Nhập Dữ Liệu Kiểu Chuỗi
Trong ví dụ này, hãy thử yêu cầu người dùng nhập tên từ Console và in lời chào ngay trên Console.
Để đợi người dùng nhập tên, hãy thêm dòng sau sau khi khai báo "scanner":
String name = scanner.nextLine();
Sau khi thực hiện dòng này, tên người dùng nhập từ Console sẽ được gán vào biến kiểu String có tên "name". Để hỗ trợ người dùng, chúng ta nên in ra các chỉ dẫn trước khi đợi người dùng nhập tên. Đoạn code hoàn chỉnh như sau:
import java.util.Scanner; public class MyFirstClass { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("Please enter your name here: "); String name = scanner.nextLine(); System.out.println("Hello! " + name); } }
Khi chạy chương trình, chỉ có dòng text "Please enter your name here:" xuất hiện. Đừng đóng cửa sổ Console, hãy nhập một text sau khi nhấn "Enter". Bạn sẽ nhận được một text in ra với nội dung "Hello! " và text bạn vừa nhập. Text này là giá trị của biến "name" đã lấy từ Console.
Ví Dụ Nhập Dữ Liệu Kiểu int
Tương tự như ví dụ trước, hãy yêu cầu người dùng nhập tuổi và in kết quả.
Hãy thêm dòng sau sau khi khai báo "scanner":
int age = scanner.nextInt();
Và thêm dòng in kết quả sau đó:
System.out.println("Your age is: " + age);
Ví Dụ Nhập Dữ Liệu Kiểu Float
Scanner hỗ trợ nhập cho hầu hết các kiểu dữ liệu nguyên thủy, ví dụ như kiểu float. Bạn cũng có thể áp dụng ví dụ này cho các kiểu dữ liệu khác.
Hãy thêm dòng sau sau khi khai báo "scanner":
float salary = scanner.nextFloat();
Và thêm dòng in kết quả sau đó:
System.out.println("Your salary is: " + salary);
Bài Kết
Sau bài học này, bạn đã có thể nhập dữ liệu từ Console và xuất dữ liệu một cách đẹp mắt ra Console. Hãy tiếp tục học các bài viết tiếp theo để cùng nhau xây dựng các ứng dụng Java hoàn chỉnh.
Cảm ơn bạn đã đọc bài viết của Yellow Code Books. Hãy ủng hộ blog bằng cách:
- Đánh giá 5 sao ở mỗi bài viết nếu bạn thấy thích.
- Để lại địa chỉ email của bạn để nhận được thông báo sớm nhất khi có bài viết mới.
- Chia sẻ các bài viết của Yellow Code Books với nhiều người khác.
- Ủng hộ blog theo hướng dẫn ở thanh bên phải để blog ngày càng phát triển hơn.
Bài kế tiếp, chúng ta sẽ tìm hiểu về khái niệm Block, Scope và làm quen với các câu lệnh điều kiện trong Java.