2013-04-08 9 views
6
if(someCondition) 
    int a=10;//Compilation Error 
else if(SomeOtherCondition){ 
int b=10;//no compilation Error 
} 

Perché questo accade. Perché nel primo caso c'è un errore di compilazione. Se metto delle parentesi graffe, non ci sono errori di compilazione, ma se le parentesi graffe sono facoltative se si tratta di una sola affermazione.Dichiarazione variabile in clausola if

risposta

8

È necessario definire l'ambito di int a in if statement e verrà definito con parentesi graffe {}.

if(someCondition){ 
    int a=10; // works fine 
}else if(SomeOtherCondition){ 
    int b=10; //works fine 
} 
+1

Grazie questo è il motivo perfetto, penso – Krushna

1
if(someCondition) 
    int a=10;//Compilation Error - you have to define the scope of int. what scope does it have here? so {} are necessary 
else if(SomeOtherCondition){ 
int b=10;//no compilation Error 
}