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

なぜこれが起こっているのですか。最初のケースでコンパイルエラーが発生するのはなぜですか?中括弧を置くと、コンパイルエラーは発生しませんが、if文の場合は、中括弧はオプションです。if節の変数宣言

答えて

8

int aのスコープをif statementに定義する必要があります。中括弧{}で定義します。

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

これは完璧な理由でいただきありがとうございます、私は思います – 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 
}