变量重复错误?

Variable repeat error?

为什么我在以下代码中遇到编译时错误?

private static void phi(int n){
    if(n > 1000)
        for(int i = 3; i <= n; i += 2)
            //do something
    else
        for(int i = 35; i <= n; i += 90)
            //do something
}

错误说

java:22: error: variable i is already defined in method phi(int)

但根据我的说法,在任何情况下,if statementelse statement都会被执行,但永远不会同时执行两者 .

这是Java编译技术的漏洞还是我的方法有误?


编辑 2

括号似乎解决了这个问题。非常感谢 blackbelt。


编辑 1

双括号似乎不是原因,因为我在删除括号后仍然出现错误。事实上,双括号是错误添加的。

if 之后和 else 之前有不止一行,所以你必须使用大括号来获得所需的行为,这在 for 语句中不是必需的,但是强制性的在这种情况下 if

此外,正如 @Joseph82 指出的...在第一个 if!

中有一个额外的 (
private static void phi(int n){
    if(n > 1000) {
        for(int i = 3; i <= n; i += 2)
            //do something
    } else {
        for(int i = 35; i <= n; i += 90)
            //do something
    }
}

if((n > 1000) 中删除一个额外的 ( 并使用 Blocks 和大括号。