6
if(someCondition)
  int a=10;//Compilation Error
else if(SomeOtherCondition){
int b=10;//no compilation Error
}

なぜこれが起こっているのか.なぜ最初のケースでコンパイルエラーがあるのか​​. 中かっこを入れてもコンパイルエラーは発生しませんが、if ステートメントの場合、中かっこは 1 つのステートメントの場合はオプションです。

4

2 に答える 2

8

int ainのスコープを定義する必要がありif statement、中括弧で定義されます{}

if(someCondition){
  int a=10; // works fine
}else if(SomeOtherCondition){
  int b=10; //works fine
}
于 2013-04-08T04:41:12.617 に答える
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
}
于 2013-04-08T04:44:58.510 に答える