我在if語句中遇到範圍問題,至少,我很確定這是我的錯誤所在,而且我不確定如何解決問題(我在編程方面很新穎)。Java程序中的if語句中的範圍錯誤
基本上,如果我在if語句中聲明某些內容,變量(在本例中是一個結構數組)不存在於if語句之外。然而,我真的需要數組的聲明在if/else中,因爲數組的大小依賴於N,所以我該如何解決這個錯誤?
該程序是在Java中,我使用Eclipse。任何見解都非常感謝。
//declare an int (used in determining array length)
int N = 4;
//declare instance of MyClass
MyClass myClass = new MyClass();
//declare and array, then initialize each struct in that array
if(N <= 26){
MyStruct array[] = new MyStruct[260];
for(int i = 0; i < array.length; i++){
array[i] = new MyStruct();
}
}
else{
MyStruct array[] = new MyStruct[N*10];
for(int i = 0; i < array.length; i++){
array[i] = new MyStruct();
}
//lots of other code goes here of stuff that needs to be done before myMethod can be called
//call a method in myClass that requires 'array' to be passed in
myClass.myMethod(array); // ERROR - ARRAY CANNOT BE RESOLVED TO BE A VARIABLE
啊 - 我想到了,但是,唉,我想數組的大小取決於變量N.如果N <= 26,使數組成爲一定的大小,否則使陣列的大小不同。因此,我必須把數組的聲明放在if/else中,對嗎?或者我錯了? – Tabitha 2012-03-10 21:13:38
@Tabitha我剛剛編輯了我的答案,提供了更多細節和問題的解決方案 – 2012-03-10 21:14:59