2013-11-02 101 views
0

我是Java的新手,很顯然,我正在做家庭作業,在那裏我得到一個數組,然後不得不用幾次精神上用各種for循環操縱它。我已經完成了自己的工作,但是我對計算機科學頗有興趣並且很興奮,認爲我可以編寫一個基本程序來檢查我的工作。java數組循環操作的基礎?

這是我寫的代碼,我的編譯器一直向我大吼,它「無法找到符號 - 變量a」。我無知的想法告訴我,當我命名數組「a」時,我創建了「a」。可悲的是,我一直無法找到類似於此的示例代碼。你們能告訴我我做錯了什麼嗎?

import java.util.Scanner; 

public class ArrayTest 
{ 
public static void main(String[] args) 
{ 
int[] a = { 1, 2, 3, 4, 5, 4, 3, 2, 1, 0 };// the array I'm working on 

} 
{ 
for (int i = 1; i < 10; i++) { a[i] = a[i - 1]; } //the manipulation given 
} 
{ 
System.out.println(a[i]); 
} 
} 

謝謝!

+2

你的代碼遍佈各處...你有2個初始化塊。變量的範圍僅限於您的主要方法。你爲什麼認爲把括號放在任何地方都是要走的路? –

+0

請注意Keppil答案中的代碼與您的代碼相比如何格式良好。由於代碼缺乏嚴格的一致縮進,您可以立即知道方法和循環內部的內容。 –

+0

請在發佈之前縮進代碼 –

回答

4

您的a數組聲明爲main方法的本地成員。

main方法之後的下一個塊被稱爲實例塊,因爲它們涉及到你的Main類的實例,而不是其main,靜態的,可執行的方法的主體。

因此,您的for循環引用了範圍無法訪問的變量。

將您的for循環和打印輸出移至main方法,方法是移除它們周圍的大括號以便代碼進行編譯。

編輯就像在凱皮爾的回答。

根據要求,Keppil的代碼的裸拷貝粘貼。

public static void main(final String[] args) { 
    int[] a = { 1, 2, 3, 4, 5, 4, 3, 2, 1, 0 };// the array I'm working on 
    for (int i = 1; i < 10; i++) { 
     a[i] = a[i - 1]; // the manipulation given 
     System.out.println(a[i]); 
    } 
} 
+1

您的回答更好地解釋了它,請將代碼移到此處。 +1 – Keppil

+0

@Keppil感謝您的公平參與。 – Mena

+0

非常感謝。我的老師聲稱,在學期結束時,語法錯誤將成爲過去。我希望他是對的。再次感謝您的幫助。 – phantasms