簡體   English   中英

在條件內重新分配Java變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM