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

Warum das passiert.Warum gibt es im ersten Fall einen Kompilierungsfehler. Wenn ich geschweifte Klammern setze, dann ist kein Kompilierungsfehler, aber für if-Anweisung Klammern sind optional, wenn es eine Anweisung ist.Variablendeklaration in if-Klausel

Antwort

8

Sie müssen den Bereich der int a in if statement definieren und es wird mit geschweiften Klammern {} definiert werden.

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

Vielen Dank ist dies der perfekte Grund, ich glaube, – 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 
}