java - 变量重复错误?

标签 java android compiler-errors

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

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 语句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/

相关文章:

Android:在具有固定宽度的 TableLayout 上动态添加 TextView

c++ - C++ 构造函数中体系结构 x86_64 的 GCC undefined symbol

scala - 在scala中的构造函数内部调用函数

java - 如何在war中证明class文件的安全性而不影响功能?

java - jackson - 在序列化时省略字段名称

java - Android 混淆 Proguard 问题

java - 使用 AppBarLayout.Behavior.DragCallback 控制折叠工具栏布局的滚动

java - ArrayList<X> 是聚合还是组合?

java - 为什么使用 "this"关键字来获取父类(super class)方法

C++ 使用 GetEnvironmentVariable() 的完整路径写入文件错误