2014-04-17 66 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

这没有增加讨论,并且比现有答案更详细。 –