if语句中的Java变量作用域
我收到以下代码的编译错误:
if(true) int a = 10;
else
int b = 20;
如果将其更改为以下代码,则没有编译错误:
if(true) { int a = 10;
}
else {
int b = 20;
}
为什么第一种语法是错误的,以及从哪种语言标准开始?
回答:
Java规范说一条if-then-else
语句具有以下形式:
IfThenElseStatement: if ( Expression ) StatementNoShortIf else Statement
在哪里Statement
和StatementNoShortIf
可各种各样的事情,包括块(代码括号括起来),任务(已声明的变量),其他的if语句等。
值得注意的是,该列表中缺少声明语句(例如int a;
或int a = 10;
),因此会出现编译错误。
有关完整列表,您可以在此处阅读Java规范:http :
//docs.oracle.com/javase/specs/
以上是 if语句中的Java变量作用域 的全部内容, 来源链接: utcz.com/qa/428330.html