[英]Reassigning a Java variable within a conditional
我有一個變量,該變量被初始化,然后在有條件的情況下動態地重新分配。 因此:
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;
}
您實際上是在重新聲明變量a
,而不是重新分配其值。
嘗試
a = 10;
代替
int a = 10;
是時候使用嵌入式條件運算符(“三元運算符”)了:
int a = (b > 5) ? 10 : 1;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.