01/10/2018, 10:02
Cần giúp code java nhập vào danh sách học sinh
em có
public class hocsinh {
String Ten;
String GioiTinh;
public void nhapvao(){
Scanner keyboard = new Scanner(System.in);
System.out.println("Nhập vào tên: ");
Ten = keyboard.nextLine();
System.out.println("Nhập vào giới tính: ");
GioiTinh = keyboard.nextLine();
}
public void xuat(){
System.out.printf(" Tên: %s | Giới Tính: ", Ten, GioiTinh);
System.out.println("");
}
}
và
public class TestCom {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int N;
System.out.println("Nhập vào N: ");
Scanner keyboard = new Scanner(System.in);
N = Integer.parseInt(keyboard.nextLine());
hocsinh[] std = new hocsinh[N];
for (int i=1;i <= N; i++){
System.out.println("Nhập vào sinh viên thứ" + i );
std[i] = new hocsinh();
std[i].nhapvao();
}
for (int i=1; i <= N; i++){
std[i].xuat();
}
}
}
các bác xem lỗi ở đâu mà khi chạy nó ra lỗi này
Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 1
at test.com.TestCom.main(TestCom.java:27)
Bài liên quan
Bạn hiểu như thế nào về dòng này?
e mới học nên cũng k rõ lắm
mạng vượt quá giới hạn là sao bác?
Giả sử nhập N = 5
=>
…| 0 | 1 | 2 | 3 | 4 |…
Out of bounds là vùng …
Hi buzbum.
Định dạng lai code đi bạn.
nghĩa là giờ em đổi số vòng lặp lại là được ạ
Thử đổi lại xem sao Tí đến giờ ăn cơm báo anh một tiếng rồi ăn nhé :v
được rồi a. e mới ăn sáng nên tối mới ăn tiếp :#
Lỗi ArrayIndexOutOfBoundsException là khi đang gán hoặc set một index vượt quá index của mảng hiện có thể chứa. Index của mảng chỉ chạy từ Arrays.length -1. Ví dụ mảng có 5 phần tử thì index của nó là 0,1,2,3,4. Ở trên lỗi vì bạn đang gán i <= N. Hãy gán thành i<N;
Lưu ý: Index của mảng được duyệt từ 0 đến n-1. VD mảng i có n = 5 phần tử thì của các phần tử trong mảng đó là i[0], i[1], i[2], i[3], i[4]
Hãy gán
i = 0
vài < n
Còn in ra phần tử thứ mấy thì
i + 1