为什么我在Java中遇到这个编译错误?

Blo*_*rot -1 java

在java中为什么编译器不允许以下代码?

public class Test {

    public static void main(String[] args) {

        int x;
        int x = 4;// the error is generated here

    }

}
Run Code Online (Sandbox Code Playgroud)

Osc*_*Ryz 12

因为第二个

int x = 4;
Run Code Online (Sandbox Code Playgroud)

尝试创建int类型的变量名"x",但此变量已存在(在上一行中创建)

可能你想做:

int x;
x = 4;
Run Code Online (Sandbox Code Playgroud)

(不在第二行使用int)

将值4赋给x.

甚至更好:

int x = 4;
Run Code Online (Sandbox Code Playgroud)

这将创建int类型的变量x并将值4赋值.


Ken*_*ing 11

你已经声明了两个int变量; 两个都命名x.这是不允许的.

尝试:

public static void main(String[] args) {
    int x;
    x = 4;
}
Run Code Online (Sandbox Code Playgroud)