Tại sao code trong vòng for thứ hai lại không được thực hiện?

  for(int i=0;i<countsv;i++) {
			ArrayList<SinhVien> SV=new ArrayList<SinhVien>();
			int stt=i+1;
			System.out.println("sinh vien thu "+stt+" : "); 
			System.out.print("Nhap ma sinh vien : ");
			int masv=input.nextInt();
			for(int j=0;j<SV.size();j++){
				if(SV.get(j).getMaSV()==masv){
					System.out.println("Ma sinh vien khong duoc trung");	
				}
				else {
					System.out.print("Nhap ho dem sinh vien : ");
					input.nextLine();
					String hodem=input.nextLine();
					System.out.print("Nhap ten sinh vien : ");
					String ten = input.nextLine();
					System.out.print("Nhap nam sinh sinh vien : ");
					int namsinh =input.nextInt();
					System.out.print("Nhap gioi tinh sinh vien : ");
					input.nextLine();
					String gtinh=input.nextLine();
					SinhVien SVN=new SinhVien(masv,hodem,ten,namsinh,gtinh);
					SV.add(SVN);
				}
			}

Rm làm như này mà cái vòng for thứ hai nó lại không chạy là do đâu ạ???

Format code please. Chủ thớt cho code vào markdown giùm với chứ trình bày tệ quá.
@ltd có khi nghiên cứu làm 1 nút up code to đùng với đủ loại ngôn ngữ để các mem dùng cho tiện nhỉ chứ không tình trạng copy code y như notepad còn phổ biến quá

1 Like

Đơn giản:

SV.size() đang = 0 nên for không chạy là phải.

Cách làm của bạn sai hoàn toàn:

  • Vị trí khai báo.
  • Kiểm tra trùng lặp.
  • Nhập sinh viên mới.

Nên:

  • Khai báo ArrayList ngoài cả 2 for.
  • Dùng if - else trong for thứ 2 để kiểm tra và nhập là sai. Nên kiểm tra hết toàn bộ, nếu không trùng lặp thì mới nhập.
2 Likes

Nên chạy bằng debug rồi đặt debug thì b sẽ hiểu lỗi ở đâu

1 Like

em mới vào nhóm hôm qua nên chưa biết =(((((((

Dạ em cảm ơn ạ.em làm được r

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