if子句中的变量声明

时间:2013-04-08 04:39:51

标签: java if-statement variable-declaration

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

为什么会发生这种情况。为什么在第一种情况下出现编译错误。如果我放括号,那么没有编译错误,但if语句括号是可选的,如果它是一个语句。

2 个答案:

答案 0 :(得分:8)

您需要在int a中定义if statement的范围,并使用花括号{}进行定义。

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

答案 1 :(得分: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
}