Java - Nhập vào thông tin của 1 sinh viên và hiển thị ra màn hình.
Nhập vào thông tin của một sinh viên từ bàn phím (thông tin đó bao gồm họ tên, năm sinh và địa chỉ). Sau đó hiển thị các thông tin vừa nhập ra màn hình Console.
Bài giải
-------------------- ######## --------------------
package baitap; import java.util.Scanner; public class StudentInformation { public static void main(String[] args) { String name; int year; String address; Scanner scanner = new Scanner(System.in); System.out.println("Nhập vào họ tên của sinh viên: "); name = scanner.nextLine(); System.out.println("Nhập vào năm sinh của sinh viên: "); year = scanner.nextInt(); System.out.println("Nhập vào địa chỉ của sinh viên: "); address = scanner.nextLine(); System.out.println("Họ tên của sinh viên: " + name); System.out.println("Tuổi của sinh viên = " + year); System.out.println("Địa chỉ của sinh viên: " + address); } }
Các bạn thấy trong kết quả hiển thị thì sau khi nhập năm sinh và nhấn Enter để tiếp tục nhập địa chỉ của sinh viên thì lúc này trình biên dịch sẽ hiển thị kết quả với địa chỉ của sinh viên bằng rỗng. Hiện tượng này gọi là hiện tượng trôi lệnh khi sử dụng Scanner trong Java.
Vậy vì sao lại xảy ra hiện tượng trôi lệnh này? Và nó xảy ra khi nào? Như trong đoạn chương trình trên thì các bạn thấy hiện tượng trôi lệnh xảy ra khi chúng ta nhập vào một số và sau đó nhập vào một chuỗi. Lý do là vì khi các bạn nhập số xong và nhấn Enter thì lúc này dòng lệnh address = scanner.nextLine();
sẽ nhận ký tự Enter là giá trị của chuỗi đó. Và khi hiển thị thì giá trị địa chỉ của sinh viên sẽ bằng rỗng.
Để xử lý hiện tượng trôi lệnh trong Java, chúng ta có nhiều cách, nhưng trong bài này tôi sẽ giới thiệu cách phổ biến nhất (về hiện tượng trôi lệnh trong Java tôi sẽ làm thành một bài riêng để các bạn tham khảo).
Chúng ta sửa đoạn chương trình trên như sau:
Bài viết này được đăng tại [free tuts .net]
package baitap; import java.util.Scanner; public class StudentInformation { public static void main(String[] args) { String name; int year; String address; Scanner scanner = new Scanner(System.in); System.out.println("Nhập vào họ tên của sinh viên: "); name = scanner.nextLine(); System.out.println("Nhập vào năm sinh của sinh viên: "); /* * sử dụng Integer.parseInt() để khắc phục hiện tượng trôi lệnh * Integer.parseInt() sẽ chuyển dữ liệu kiểu chuỗi (String) thành số nguyên (Integer). */ year = Integer.parseInt(scanner.nextLine()); System.out.println("Nhập vào địa chỉ của sinh viên: "); address = scanner.nextLine(); System.out.println("Họ tên của sinh viên: " + name); System.out.println("Tuổi của sinh viên = " + year); System.out.println("Địa chỉ của sinh viên: " + address); } }
Trong bài tập này tôi đã giới thiệu đến các bạn về cách xử lý hiện tượng trôi lệnh khi sử dụng Scanner trong Java. Đây là một bài nền tảng để các bạn có thể giải quyết tốt các bài tập tiếp theo. Chúc các bạn thành công!
Câu hỏi thường gặp liên quan:
- Java - Nhập vào tên của bạn và sau đó hiển thị ra màn hình sử dụng Scanner.
- Java - Nhập vào thông tin của 1 sinh viên và hiển thị ra màn hình.
- Java - Nhập vào 2 số bất kỳ và thực hiện các phép toán cộng, trừ, nhân, chia, chia lấy dư và so sánh 2 số đó.
- Java - Bài toán tính dân số.
- Java - Tính vận tốc của 1 người đi xe máy, biết rằng vận tốc là không đổi trong suốt quãng đường.
- Java - Viết chương trình đổi từ độ Celsius sang độ Fahrenheit
- Java - Viết chương trình tính tổng các chữ số của 1 số nguyên bất kỳ.