[英]Java ArrayIndexOutOfBound Exception
我正在嘗試運行此代碼,並且不斷收到ArrayIndexOutOfBound
異常錯誤。
public class Heisenberg {
public static void main(String[] args) {
int[] array1 = new int[5];
int[] array2 = new int[5];
Ext(-1, 10, array1, array2);
}
public static void Ext(int q, int w, int[] e, int[] r) {
if (q >= 0)
e[q] = w;
r[q] = w;
}
}
我對數組有點陌生,因此感謝所有幫助。 enter code here
你的問題是,如果沒有括號,則if
僅適用於以下語句:
if (q >= 0)
e[q] = w;
r[q] = w; // <---- here you get ArrayIndexOutOfBound Exception
添加大括號,例如:
if (q >= 0){
e[q] = w;
r[q] = w;
}
將開括號和閉括號放在if條件下。
在以下行中發生錯誤:
r [q] = w;
由於此if塊之外,q的值為-1
,這導致了錯誤。
將其移入if塊:
if (q >= 0){
e[q] = w;
r[q] = w;
}
干杯!
您用值-1
參數q
調用方法Ext。 然后添加r[q] = w;
-1(未定義)(大小為5的數組在索引0-4上定義)。
你為什么要這么做?
if (q >= 0)
e[q] = w;
r[q] = w;
這意味着僅對e[q] = w;
比較if語句e[q] = w;
如果要使所有代碼都被if語句覆蓋,則需要添加花括號。 如果if語句中沒有大括號,則如果滿足以下條件,則僅第一個任務與之連接:
if (q >= 0){
e[q] = w;
r[q] = w;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.