Vấn đề Nhập Bị Trôi Lệnh Trong Java - Programming - Dạy Nhau Học Trang chủ » Trôi Lệnh Trong Java Là Gì » Vấn đề Nhập Bị Trôi Lệnh Trong Java - Programming - Dạy Nhau Học Có thể bạn quan tâm Trồi Lên Trong Tiếng Anh Là Gì Trôi Lơ Lửng Tiếng Anh Là Gì Trời Lò Ngân Sủn Trời Lộng Gió Trời Luôn Vấn đề nhập bị trôi lệnh trong java programming java Do_Nhien (Đỗ Nhiên) November 22, 2021, 4:59am #1 mình mới học java mình có một đoạn code như sau lớp QuanLy public class QuanLy { public String name; public double a; public double b; public double c; } lớp chính là như này package sinhvien; import java.util.Scanner; /** * * @author domin */ public class SinhVien { /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here Scanner s = new Scanner(System.in); System.out.println("moi cac ban nhap so luong hoc sinh nha :"); int a = Integer.parseInt(s.nextLine()); QuanLy [] ab= new QuanLy[a]; for(int i=0;i<a;i++) { ab[i]= new QuanLy(); } int[] age= new int [a]; for(int i=0;i<a;i++) { System.out.println("moi cac ban nhap ten nha "); ab[i].name=s.nextLine(); System.out.println("moi cac ban nhap so diem a cua "+ab[i].name); ab[i].a=s.nextDouble(); System.out.println("moi cac ba5n nhap so diem b cua "+ab[i].name); ab[i].b=s.nextDouble(); System.out.println("moi cac ban nhap so diem c cua "+ab[i].name); ab[i].c=s.nextDouble(); } } } các bạn cho hỏi khi thực hiện vòn lặp for nhập đến điểm c thì khi quay lại nhập tên của người kế tiếp nó lại ko cho nhập nữa mà lại tiếp luôn đến điểm à của người tiếp theo xin cách khắc phục huynhtinh (Tynk Huynk) September 29, 2016, 9:29am #2 Vấn đề ở đây là do Scanner của bạn, bởi vì sau khi nhập xong điểm c, thì bạn nhấn phím Enter để tiếp tục, nhưng thật không may là thằng Scanner lại nhận giá trị ‘\n’ của phím Enter cho lần readLine() tiếp theo. Cho nên lúc vòng lặp kế tiếp, Scanner sẽ tự động gán ‘\n’ cho biến name của ab[x], nên biến name có giá trị là “” (Nói chung là không có gì hết). Nếu là mình thì trong vòng for mình sẽ khai báo 1 thằng Scanner khác để nhập input, và cứ hết 1 lần lặp, biến này sẽ bị hủy , và sang vòng lặp tiếp theo thì Scanner mới được sinh ra và tiếp tực thực hiện input. Vậy nên bạn sẽ không lo về việc Scanner sẽ giữ giá trị ‘\n’ khi kết thúc lần lặp nữa Trên đây là cách của mình, mình không bao giờ dùng một Scanner cho nhiều biến cũng vì trường hợp của bạn. Nếu bạn nào còn có giải pháp hay hơn thì chia sẽ nha. 1 Like qloved (Quân) September 29, 2016, 10:41am #3 Do not open standard input stream in a loop, sở dĩ bị như vậy thì bạn nói đúng rồi, nhưng cách giải quyết cực đơn giản, hoặc là thêm 1 dòng nextDouble ở ngay sau dòng nextLine, hoặc gọi method flush của stream, open stream là 1 cost operation 1 Like Do_Nhien (Đỗ Nhiên) September 29, 2016, 3:26pm #4 s=new Scanner(System.in); đây là cách của ông thầy mình bạn à sẽ thêm dòng này vào dòng cuối cùng System.out.println("moi cac ban nhap so diem c cua "+ab[i].name); ab[i].c=s.nextDouble(); hai cach giong nhau nhi DayNhauHoc's Discord Học C++ Free? Click Blog Dạy Nhau Học Tự Học Lập Trình 83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao? Từ khóa » Trôi Lệnh Trong Java Là Gì Xử Lý Trôi Lệnh Khi Dùng Scanner Trong Java Bằng Nhiều Cách Xử Lý Trôi Lệnh Khi Dùng Scanner Nhập Dữ Liệu Trong Java Trôi Lệnh Trong Java | How Kteam [Java] Trôi Lệnh Trong Java Khi Dùng Scanner - Cách Học [Java] Trôi Lệnh Trong Java Khi Dùng Scanner Trôi Lệnh Trong Java Khi Dùng Scanner - Dotnet Group Trôi Lệnh Trong Java Khi Dùng Scanner - Trang Blog Bị Trôi Phím Khi Nhập Chuỗi Trong Java? [Archive] - Cộng đồng C Việt 14. Hiện Tượng Trôi Lệnh Khi Sử Dụng Scanner - YouTube 5 Lỗi Oái Oăm Hạ Gục Newbie Khi Lập Trình Java - CodeLearn Hỏi Về Bài Java đơn Giản, Chương Trình Bị Trôi Câu Lệnh Java Cơ Bản - Phần 2 - Viblo Cấu Trúc Switch Case Trong Java - KungFu Tech