当前位置: 首页 > 面试题库 >

if语句中的Java变量作用域

司马作人
2023-03-14
问题内容

我收到以下代码的编译错误:

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/



 类似资料:
  • 问题内容: 在Python中,if语句内的变量作用域是否在if语句外可见?(来自Java背景,因此有点奇怪) 在以下情况下,首先在if块内部定义名称,但是该变量在if块外部也可见。我原以为会发生错误,但打印出“ joe”。 问题答案: 语句未在Python中定义范围。 循环,语句,/等都不会。 只有模块,函数和类定义范围。 请参阅Python教程中的Python作用域和命名空间。

  • 好吧,我正在使用字典,例如: 然后我想做的基本上是说,如果“用户”(一个参数)的名称前面有“@”,那么将变量前缀分配为“@”,如果他们的名称前面有“~”,则将变量前缀分配为“~”,如果他们有“ 然后我想说,如果用户的名字前面有“%”,则将前缀变量设置为“%”,否则将其设置为“”(因为这些值只有两个键)。为此,我需要一个if语句,并将其与self进行比较。声音的价值。 分配前缀变量的当前代码 目前,

  • 我目前正在学习Java,作为其中的一部分,我正在尝试制作一个随机数生成器。 该项目仍处于早期阶段,但当我制作错误检查组件时,我遇到了一些问题,我一直在想为什么它不能以这种方式工作。 下面是错误检查器,它接收numberAmount(用户请求的随机数的数量)和randomDigit(随机数的最大位数)。 我想让它在数量或数字过高时进行标记,这可能会导致应用程序崩溃。 下面是代码。 当我不插入

  • 我无法编译这个程序。有人看到我做错了什么吗?在if语句之后,变量matchOdds似乎不存在。但是我想打印出来。

  • 问题内容: 我是Python的新手,所以这可能是一个简单的范围界定问题。Python文件(模块)中的以下代码使我有些困惑: 在我使用过的其他语言中,此代码将引发异常,因为该变量是语句的局部变量,不应在该变量之外存在。但是此代码将执行并打印1。任何人都可以解释此行为吗?是否在模块中创建的所有变量都是全局的/可用于整个模块? 问题答案: Python变量的作用域是分配给它们的最里面的函数,类或模块。控

  • 问题内容: 我想知道是否可以像这样在条件运算符中为变量赋值: 用Java有什么办法做到这一点?因为我知道在某些情况下这是可能的,但是我不确定在if语句中是否做错了或者是否不可能。 问题答案: 可以分配变量,但不能在条件语句中声明变量: