我不知道為什么會發生這種例外...
這是我的代碼
public int add(int ... values) {
int sum = 0;
for(int i : values) {
sum = values[i];
}
return sum;
}
在主要方法中我使用 add()...
public static void main(String[] args){
Calulator myCal = new Calculator();
int result = myCal.add(5,5,5,5,5,5,5);
System.out.println(result);
}
uj5u.com熱心網友回復:
for(int i : values) {
sum = values[i];
}
這段代碼根本沒有意義。i 不代表您迭代的索引,而是值。
將您的代碼更改為:
for(int i : values) {
sum = i;
}
編輯:雖然,因為你的陣列應該包含足夠的元素:我不明白為什么你會得到那個例外,如果這真的是你提供的輸入。
uj5u.com熱心網友回復:
您提供的代碼不會產生 ArrayIndexOutOfBoundsException。但是,我認為您錯誤地使用了 for-each 回圈。在某些情況下,可能會拋出例外。for-each 回圈中的i保存陣列的元素,而不是索引。您獲取該值并將其用作索引并進一步從陣列中檢索一個值。如果陣列長度短于保存在 中的值,則i發生 ArrayIndexOutOfBoundsException。我修改了你的add().
public int add(int... values) {
int sum = 0;
for (int i : values) {
sum = i;
}
return sum;
}
這是主要
public static void main(String[] args) {
Calculator myCal = new Calculator();
int result = myCal.add(0, 1, 1, 2, 3, 5, 8); // result = 20
System.out.println(result);
}
uj5u.com熱心網友回復:
引發例外是因為第 0 個索引處的值被分配給 i,如果 i 大于陣列的長度,則拋出例外。第 0 個索引值不必大于它可以是陣列中任何元素的長度。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/458717.html
上一篇:如何保存例外并稍后拋出
