Pourquoi les variables ne peuvent-elles pas être déclarées dans une instruction if?

Le code Java suivant ne compile pas.

int a = 0;

if(a == 1) {
    int b = 0;
}

if(a == 1) {
    b = 1;
}

Pourquoi? Il peut y avoir aucun code n'chemin conduisant au programme d'attribution de 1 à b sans la déclarer en premier.

Il m'est apparu que b's variable de portée peut être limitée à la première if déclaration, mais alors je ne comprends pas pourquoi. Que faire si je ne veux vraiment pas à déclarer b inutilement, afin d'améliorer les performances? Je n'aime pas avoir des variables reste inutilisée après la déclaration.

(Vous pouvez argumenter que je peut simplement déclarer b dans la deuxième if déclaration, dans ce cas, il suffit d'imaginer que cela pourrait être dans une boucle quelque part d'autre.)

source d'informationauteur Aeronth | 2013-07-03