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

在哪里StatementStatementNoShortIf可各种各样的事情,包括块(代码括号括起来),任务(已声明的变量),其他的if语句等。

值得注意的是,该列表中缺少声明语句(例如int a;int a = 10;),因此会出现编译错误。

有关完整列表,您可以在此处阅读Java规范:http :

//docs.oracle.com/javase/specs/

以上是 if语句中的Java变量作用域 的全部内容, 来源链接: utcz.com/qa/428330.html

回到顶部