2014-04-17 108 views
0

嘿,我剛剛開始我的第一個Java編程類。在課上,我們提出了一個非常基本的代碼,用於在諧波序列中添加數字。我得到一個錯誤:找不到符號x在總行+ =(1.0 /(x + 1))上。錯誤:無法找到符號[編譯器錯誤]

下面的代碼:

public class Group1 
{ 
public static void main(String[]args) 
    { 
     foo(3); 
    } 
public static void foo(int n) 
    { 
    double total = 0; 
    for (int x = 0; x < n; x++); 
     { 
     total+= (1.0/(x+1)); 
     } 
    System.out.println(total); 
    } 
} 

我將不勝感激任何答案。我一直在試着弄一個小時。我無法相信我找不到如此簡單的東西。感謝您的任何幫助。

+9

在'for'語句後面有一個懸掛';'。投票結束打字錯誤。 –

+0

這就是爲什麼K&R縮進風格更勝一籌。 (Flamewar:now!:)) – Amadan

+0

@Amadan這與懸掛分號有什麼關係? –

回答

2

範圍在for語句的末尾刪除分號。基本上在你的代碼範圍內的變量是隻在循環內,因爲你通過放一個分號結束for循環,所以x在這之後就不見了。

+0

謝謝你解釋我做錯了什麼的細節。我感謝幫助! – user3543770

3

在for循環結束時刪除;。通過在末尾添加分號,就會限制變量x

for (int x = 0; x < n; x++); // <--- remove this semi colon 
+1

非常感謝!很快。 – user3543770

-1

變化for (int x = 0; x < n; x++);for (int x = 0; x < n; x++)

+0

這沒有增加討論,並且比現有答案更詳細。 –