为什么我在以下代码中遇到编译时错误?
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 methodphi(int)
但据我所知,在任何情况下,if 语句
或else 语句
都会被执行,但绝不会同时执行两者.
这是Java
编译技术的漏洞还是我的方法错误?
编辑2
括号似乎已经解决了这个问题。非常感谢黑带。
<小时/>编辑 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
}
}
关于java - 变量重复错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30241522/