Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

trôi lệnh trong java

17:02 12-03-2018 3.022 lượt xem 2 bình luận 22:38 15-03-2018

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 đỡ !!!

 

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
Hoàng Trung đã bình luận 22:38 15-03-2018

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());

 

Bùi Cường đã bình luận 13:04 13-03-2018

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

Câu hỏi mới nhất