Java cơ bản về nhập xuất

    Scanner scanner = new Scanner(System.in);
    boolean x = true;
    String hoTen = null;
    double dtb = 0;
     
     do {  
     try {
        x = false;
        System.out.println("Ho va ten :");
     
        hoTen = scanner.nextLine();
     
        System.out.println("Diem trung binh");
     
        dtb = scanner.nextDouble();
       
     }
     catch (Exception e){
         System.out.println("Xin hay nhap dung format ");
          x = true;
     }
     }
     while (x  );

cho em hỏi là tại sao khi nhập dtb = kí tự thì vòng lặp dược thực hiện nhưng nó lại bỏ qua không yêu cầu nhập cái hoTen và hoTen auto nhận cái kí tự e nhập ở trên kia lun a

Bạn search trên diễn đàn với từ khóa Scanner sẽ thấy rất nhiều topic nói về vấn đề này.
Bác @Voodoo cũng xây dựng hẵn 1 thư viện để giải quyết hạn chế Scanner

3 Likes

Bị trôi dòng nhé. Nếu muốn bạn có thể google “Trôi dòng trong java” lúc đó sẽ hiện ra… Code bạn mình sẽ chỉnh lại thế này:

Scanner scanner = new Scanner(System.in);
    boolean x = true;
     
     do {  
     try {
        x = false;
        System.out.println("Ho va ten :");

        String hoTen = scanner.next();
        
        System.out.println("Diem trung binh");
     
        double dtb = Double.parseDouble(scanner.next());
       
     }
     catch (Exception e){
         System.out.println("Xin hay nhap dung format ");
          x = true;
     }
     }
     while (x  );
2 Likes

tks nhiều nha :))))))

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?