我正在嘗試爲我的程序創建一個交互式菜單,用於處理對象數組(「學生」)。問題是在我的第二個開關函數,情況1.它不斷給我一個錯誤,myArray尚未初始化。我在我的主要方法中首先聲明瞭myArray,並認爲在我的第一個開關中初始化它將初始化myArray的所有情況。 (注意,我的第一個開關案例「是」和案例「否」沒有問題。) 對我來說,我似乎無法訪問while循環之外的初始化數組。有沒有解決的辦法?無法訪問循環內初始化的數組
public static void main(String[] args) {
Student[] myArray;
System.out.println("Welcome.");
//stuff
System.out.println("Please type \"Yes\" or \"No\".");
switch (keyboard.next()) {
case "Yes":
String filename = myFile;
myArray = readListFromFile(filename); //sends to setters in class Student
//more stuff
break;
case "No":
myArray = readList(); //allows for manual input then sends to setters
//stuff
break;
default:
System.out.println("Unrecognized option.");
}
// add a new switch
switch(keyboard.nextInt()) {
case 1:
averageScore(myArray); //The local variable myArray may not have been initialized
}
}
在此先感謝。
它說這是因爲它有可能是你的while循環從未被執行。因此添加一個默認初始化。 – CoderNeji
在while循環之前添加一個默認初始化。 – Stultuske
編譯器在讀取它之前需要知道變量是否已初始化。每個執行路徑都需要初始化變量。確保這一點的最簡單方法是在聲明它時指定它。 – khelwood