01/10/2018, 14:21
Lỗi duyệt phần tử trong ArrayList<SinhVien>
package testproject;
import java.util.ArrayList;
import java.util.Scanner;
class SinhVien {
String name,lop;
short age;
}
public class TestProject {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
SinhVien sv ;
ArrayList<SinhVien> arr;
Scanner in = new Scanner(System.in);
arr = new ArrayList<>();
sv = new SinhVien();
short k;
while (true) {
try {
System.out.println("1. Nhap danh sach sinh vien");
System.out.println("2. Hien thi danh sach sinh vien");
System.out.println("3. Tim kiem theo ten");
System.out.println("4. Exit");
System.out.print("chon: ");
k = Short.parseShort(in.nextLine());
switch(k) {
case 1:
System.out.print("Nhap ten: ");
sv.name = in.nextLine();
System.out.print("Nhap tuoi: ");
sv.age = Short.parseShort(in.nextLine());
System.out.print("Nhap lop: ");
sv.lop = in.nextLine();
arr.add(sv);
break;
case 2:
System.out.println("Hien thi danh sach sinh vien");
SinhVien svv = new SinhVien();
for (short i = 0;i<arr.size();i++) {
svv = arr.get(i);**
System.out.println("Ten: " +i+" "+svv.name );
}
break;
case 3:
break;
case 4:
System.exit(0);
default:
System.out.println("khong co chung nay nay");
}
} catch(Exception e)
{
System.out.println("Khong thay cai gi");
}
}
}
}
Sau khi mình nhập 2 người và duyệt để in ra 2 người thì đều in ra tên một người cuối khi nhập.
Ai xem giúp mình là lỗi ở đâu!!
Thank!!
Bài liên quan
Không thấy gì bạn ơi ?, có in tên 2 người rồi còn gì
Mình nhập tên 2 người khác nhau nhưng lại in ra 2 người giống nhau.
Nên nó bị lỗi
Bạn thao tác trên đúng một đối tượng Sinh Viên lại thay đổi giá trị tên của sinh viên đó 2 lần thì khi in ra nó sẽ in ra giá trị của biến name ở lần nhập cuối => bạn nên làm như sau
Thank you very much!!!
Mình đã làm thành công
Mình nghĩ lần sau khi gặp vấn đề gì, bạn nên nêu rõ tình trạng và hỏi đúng câu hỏi.
Nếu ngay từ đầu bạn nói rõ là bị lỗi chỉ hiện thì tên người thứ 2 thì có lẽ mọi người không cần đọc code cũng có thể giúp bạn
Mình nghĩ bạn không nên code hộ luôn như vậy, lỗi như này chỉ cần giải thích về reference variable là bạn ấy có thể hiểu và tự sửa lỗi => sẽ nhớ lâu hơn.