30/09/2018, 17:26
Lỗi exception khi sử dụng mảng trong Java?
Mọi người cho em hỏi tại sao khi khai báo mảng ở vị trí 1 thì nó tung ra ngoại lệ, tức mình chỉ nhập đc 1 phần tử và ko nhập đc nữa, nhưng khai báo ở vị trí 2 thì nó ok. em thấy 2 vị trí này ko khác nhau mà. Ai giải thích dùm e dc ko ạ?
Bài liên quan
trình biên dịch của java không báo lỗi. Nhưng chạy sẽ bị văng lỗi exception.
ở vị trí số 1, n = 0. Trong java không có khởi tạo mảng không phần tử.
ở vị trí số 2 thì n bắt buộc phải nhập với giá trị > 0. Nên khi đến vị trí số 2 thì mảng được khai báo mảng có phần từ lớn hơn 0.
@masoivn cái vòng for cho i chay < n thì ok nhập đúng số phần tử, cho <= n thì lúc xuất nó báo lỗi là sao thế bạn? mảng xuất phát từ 0 nên cho nó <=n mới đúng chứ nhỉ?
ý huyền là
for (int i = 0; i <= n; i++)
chỗ khi chạy sẽ văng lỗi exception. Vì phần tử bắt đầu của mảng trong java là 0. Khác với C++, phần tử bắt đầu là 1.vâng đúng là chỗ đó, trong java bắt đầu từ 1 ạ?
phần từ bắt đầu của mảng trong java là 0.
uấy e nhầm, hi, tks @masoivn
Trong C++ hình như phần tử bắt đầu cũng là 0 mà nhỉ ^^ * thắc mắc *
Trong C/C++ mảng bắt đầu từ 0, trong Pascal mới bắt đầu từ 1
Thứ nhất : ở trên là nhập số phần tử mảng(chỉ nhập 1 lần), ở dưới là nhập các phần tử mảng(nhập n lần)
Thứ Hai : Mảng trong java số phần tử phải >0.Tại vị trí đầu tiên bạn để n=0 là biến toàn cục nên mảng thứ nhất bị đẩy ra exception từ hàm main chứ không phải exception trong try của bạn. Sau khi bạn nhập n thì n này sẽ gán xuống mảng dưới. Vì vậy mảng dưới có số phần tử khác 0 ban đầu nên được chấp nhận.