在条件语句中重新分配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代码>可以。就我个人而言,只要有可能,我宁愿只做声明。