Il seguente codice Java non viene compilato.Perché le variabili non possono essere dichiarate in un'istruzione if?
int a = 0;
if(a == 1) {
int b = 0;
}
if(a == 1) {
b = 1;
}
Perché? Non può esserci alcun percorso di codice che porta al programma che assegna 1 a b
senza dichiararlo prima.
Mi è venuto in mente che l'ambito della variabile b
potrebbe essere limitato alla prima istruzione if
, ma non capisco perché. E se davvero non volessi dichiarare b
inutilmente, al fine di migliorare le prestazioni? Non mi piace avere le variabili lasciate inutilizzate dopo la dichiarazione.
(Si consiglia di discutere di quanto potessi semplicemente dichiarare B nella seconda if
dichiarazione, in questo caso, solo immaginare che potrebbe essere in un ciclo da qualche altra parte.)
perché B ha dichiarato nel primo blocco if e inaccessibile fuori dal blocco, dichiarano la b con un –
Cosa si è verificato a voi è giusto. La variabile b è solo nell'ambito di quella particolare parentesi graffa. – Thihara
Si prega di leggere la spiegazione ** WHOLE **. – Aeronth