在条件中重新分配Java变量

时间:2013-09-21 00:51:36

标签: 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;

为什么我不能重新分配这个变量?

3 个答案:

答案 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;