我有一个变量,它被初始化然后在条件中动态重新分配;就这样:
int a;
if(b > 5) {
int a = 10;
} else {
int a = 1;
}
它给了我这个错误:
/path/to/file:4 a is already defined in int a = null;
为什么我不能重新分配这个变量?
答案 0 :(得分:2)
写作时
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;
}
答案 1 :(得分:2)
您实际上重新声明变量a
,而不是重新分配其值。
尝试
a = 10;
而不是
int a = 10;
答案 2 :(得分:2)
使用内联条件运算符(“三元运算符”)的好时机:
int a = (b > 5) ? 10 : 1;