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

Dlaczego tak się dzieje. Dlaczego wystąpił błąd kompilacji w pierwszym przypadku. Jeśli wstawię nawiasy klamrowe, to nie wystąpi błąd kompilacji, ale jeśli nawiasy instrukcji są opcjonalne, jeśli jest to jedna instrukcja.Deklaracja zmiennych w klauzuli:

Odpowiedz

8

Musisz zdefiniować zakres int a w if statement i będzie on zdefiniowany za pomocą nawiasów klamrowych {}.

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

Dziękuję to doskonały powód, myślę – 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 
}