Kteam Q&A Community

Cộng đồng hỏi đáp về các vấn đề trong lập trình, công nghệ thông tin.

0

trôi lệnh trong java

Mình có đoạn lệnh này :

public class Lab3_lythuyet {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);      
        System.out.print("Nhập số sinh viên : ");
        int ssv = scanner.nextInt();
        String a[] = new String[ssv];
        for(int i = 0 ; i< ssv; i++)
        {
            System.out.print("Nhập sinh viên thứ " + (i+1) + ":");
            
            a[i] = scanner.nextLine();
            
        }       
    } 
}

Nó bị trôi lệnh không cho nhập sinh viên thứ 1 , chỉ được bắt đầu nhập từ sv thứ 2

đã thử dùng scanner.next() trước a[i] = scanner.nextLine() nhưng khi xuất thì chỉ xuất ra phần chuỗi phí sau khoảng trắng ..

VD : nhập Minh Dương => xuất ra Dương .

Mong mọi người giúp đỡ !!!

 

2 câu trả lời Thêm câu trả lời

0
Bùi Cường đã trả lời 2018-03-13 13:04:52

Mình nghĩ bạn nên dùng BufferedReader từ luồng InputStreamReader thì hay hơn @@

0
Hoàng Trung đã trả lời 2018-03-15 22:38:56

Lỗi của bạn nằm ở chỗ số sinh viên. Sau khi đọc vào số sinh viên thì bộ đệm sẽ chừa lại dấu \n sau khi bạn nhấn enter. Vì thế nên ở sinh viên đầu tiên sẽ nhận ngay kí tự \n và bỏ qua sinh viên đầu tiên. Để tránh lỗi trên bạn nên dùng:

int ssv = Integer.parseInt(scanner.nextLine());

 

Câu trả lời của bạn

Bạn có thể trả lời câu hỏi này? Hãy chia sẻ nó cho mọi người.

Hủy bỏ hoặc

Chiến dịch

Kteam - Howkteam Free Education