Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在条件语句中重新分配Java变量_Java_Variables_Netbeans_Compiler Errors - Fatal编程技术网

在条件语句中重新分配Java变量

在条件语句中重新分配Java变量,java,variables,netbeans,compiler-errors,Java,Variables,Netbeans,Compiler Errors,我有一个变量,它被初始化,然后在一个条件中动态地重新赋值;因此: int a; if(b > 5) { int a = 10; } else { int a = 1; } 它给了我这个错误: /path/to/file:4 a is already defined in int a = null; 为什么我不能重新分配此变量?当您编写 int a; 这是变量的声明。如果您再次尝试在相同的范围内以相同的方式写入它,并且变量已经存在,那么编译器将抛出一个错误 无需重新定

我有一个变量,它被初始化,然后在一个条件中动态地重新赋值;因此:

int a;

if(b > 5) {
    int a = 10;
} else {
    int a = 1;
}
它给了我这个错误:

/path/to/file:4 a is already defined in int a = null;
为什么我不能重新分配此变量?

当您编写

int a;
这是变量的声明。如果您再次尝试在相同的范围内以相同的方式写入它,并且变量已经存在,那么编译器将抛出一个错误

无需重新定义变量
a
,只需按如下方式重新分配:

int a = 0; // note that you need to initialize the local variables before using 

if(b > 5) {
     a = 10;
} else {
     a = 1;
}
当你写作时

int a;
这是变量的声明。如果您再次尝试在相同的范围内以相同的方式写入它,并且变量已经存在,那么编译器将抛出一个错误

无需重新定义变量
a
,只需按如下方式重新分配:

int a = 0; // note that you need to initialize the local variables before using 

if(b > 5) {
     a = 10;
} else {
     a = 1;
}
实际上,您是在重新定义变量
a
,而不是重新分配其值

试一试

而不是

int a = 10;
实际上,您是在重新定义变量
a
,而不是重新分配其值

试一试

而不是

int a = 10;

使用在线条件运算符(“三元运算符”)的最佳时机:


使用在线条件运算符(“三元运算符”)的最佳时机:


在这种特殊情况下,不需要完整的定义
inta=0。只是
inta可以。就我个人而言,只要有可能,我宁愿只做声明。只是
inta可以。就我个人而言,只要有可能,我宁愿只做声明。