Java 中的作用域规则

2023-12-03

有人可以帮助我理解 Java 中的作用域规则吗?这显然是无效的:

    {
        int i = 0;
        System.out.println(i); // fine, of course
    }
    System.out.println(i); // syntax error

i被宣布在{},而且在外面是买不到的。那么这个呢:

    for (int i = 0; i < 10; i++) {
         System.out.println(i); // fine, of course
    }
    System.out.println(i);  // syntax error, same as above.

我对这里的语法错误感到惊讶。i在外部作用域中声明,但稍后不可用。它是否通过某些特殊规则绑定到内部块范围for循环?还有其他情况可能会发生这种情况吗?


想想 for 循环实际上是这样表示的:

{
  int i = 0;
  while (i < 10) {
    // your code
    i ++
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 中的作用域规则 的相关文章

随机推荐

  • MySQL:如何转换为EAV?

    假设我有下表 TABLE one id first name last name 1 John Doe 2 Jane Smith 我想将其转换为 EAV TABLE two id fk id attribute value 1 1
  • JQuery 数字格式

    关于这个基本功能有太多的问题和答案 我只见树木不见森林 在 Java 中只有一个简单的答案 java text NumberFormat及其子类 所以我确信大多数插件 问题和答案最终将成熟为 JQuery 的事实上的标准 这个插件是迄今为止
  • 多重处理会导致 Python 崩溃,并给出一个错误:调用 fork() 时可能已在另一个线程中进行

    我对 Python 比较陌生 并尝试为我的 for 循环实现一个多处理模块 我有一个图像 url 数组存储在 img urls 中 我需要下载并应用一些 Google 视觉 if name main img urls ALL MY Imag
  • 在 XSLT/XML 中将日期显示为 DD-MM-YYYY

    当从 XML 拉到 XSLT 1 0 时 一直尝试将文本格式化为显示为 DD MM YYYY 因为我知道在使用 xs date 时 必须在 XSD XML 中将其布局为 YYYY MM DD用过的 这是我正在处理的代码 关于如何显示它有什么
  • __lt__ 而不是 __cmp__

    Python 2 x 有两种重载比较运算符的方法 cmp 或 丰富的比较运算符 例如 lt 据说丰富的比较重载是首选 但为什么会这样呢 丰富的比较运算符更容易实现 但您必须使用几乎相同的逻辑来实现其中的几个 但是 如果您可以使用内置的cmp
  • SetLayeredWindowAttributes 在 Windows 7 上不起作用

    我正在使用 SetLayeredWindowAttributes 使分层窗口的特定颜色透明 这在 Windows XP VISTA 上运行良好 但当我在 Windows 7 上使用相同的方法时 它不起作用 SetLayeredWindowA
  • Heroku 部署失败:[远程拒绝] master -> master(预接收挂钩拒绝):错误:无法推送一些引用

    我将现有应用程序复制到新存储库中 它在本地工作 部署原始工作 我正在使用 PHP Yii 和 Composer 我不知道什么fxp composer asset plugin is C Users Chloe workspace affil
  • 运行 make 时出错:缺少分隔符(您的意思是 TAB 而不是 8 个空格吗?)

    我正在尝试获取 PHPphar我的 Debian VM 上安装的命令行工具如何here描述 1 下载php src 我假设它在 tmp php src中 2 建立目录 tmp phar 3 保存this作为 tmp php src ext
  • Python 二进制转换为十六进制

    我正在尝试将 python 中的二进制文件 gzipped 协议缓冲区对象 转换为字符串转义方式的十六进制字符串 例如 xFA x1C 我都尝试过 repr
  • 如何动态组合 linq 查询?

    假设我有一个表 其中包含字符串中的格式化值 nvarchar 柱子 这些值应该是由某个 const 符号分隔的字符串 让它成为分号 例如 12 0 5 dog four values separated by a semi colon or
  • AppWidgetProvider:未调用 onEnabled 方法

    我有显示来自内容提供商的数据的小部件 我想知道内容提供商中的数据何时发生变化 据我所知 这样做的方法是 context getContentResolver registerContentObserver 但是当我添加小部件的第一个实例时
  • Swift 选项 - 从“x”到“x”的条件转换警告始终成功

    我想知道是否有办法关闭 避免 xcode 中的 黄色 警告if let NSUserDefaults构造其中键具有已知值的结构 例如 if let x NSUserDefaults standardUserDefaults integerF
  • 带投影的 CreateCriteria 不会选择所有列

    我的问题就像Grails 投影未返回所有属性且未分组 我有以下标准 def sharedDocumentsInstanceList SharedDocuments createCriteria list params createAlias
  • Angular HttpClient 方法不转换响应类型

    刚刚开始使用新的 HttpClient 但每当我拨打电话时 响应都不会使用提供的类型进行转换 我尝试了接口和类 现在我假设您只能使用接口来转换为响应 因为这是我们在文档中看到的唯一示例 我宁愿使用一个类在模型中包含一些辅助函数 有没有办法以
  • Git 工作流程 - 设置构建流程

    免责声明 我已经使用 Git 一段时间了 但仍然觉得它令人困惑 我正在为一个项目设置构建过程 但在更新 git 存储库时遇到问题 我在服务器上创建了存储库 假设为 C MyProject 我使用 SourceTree 将我的计算机连接到存储
  • 地图和过滤器内的 setState

    最近在学习react native中的map和filter方法 有一个问题 找到数组的特定行 带过滤器 后 如何仅设置该特定行的特定字段 我有 this state post id 0 author Duffy Duck delay 1 p
  • 使用 RTC 源代码管理获取已更改文件的文件名、位置和作者

    我正在尝试访问给定流的已更改文件的文件名 位置和作者 下面的代码是我到目前为止所拥有的 看看api文档 这似乎不可能 这可以使用 java api 或其他方法来实现吗 IChangeSetSearchCriteria c IChangeSe
  • 在 C# 中定义操作系统版本

    我有一个问题 我找不到在编译时检测 Windows 版本的方法 我的目的是创建一个依赖于接口的可执行文件 该接口仅在特定版本的Windows中定义 因此 为了制作可执行的跨 Windows 版本 我希望能够为特定 Windows 版本定义包
  • Python while 循环中的准确睡眠/延迟

    我有一个 while True 循环 它将变量发送到外部函数 然后使用返回的值 该发送 接收过程具有用户可配置的频率 该频率是从外部 ini 配置文件中保存和读取的 我尝试过 time sleep 1 Frequency 但考虑到其他地方使
  • Java 中的作用域规则

    有人可以帮助我理解 Java 中的作用域规则吗 这显然是无效的 int i 0 System out println i fine of course System out println i syntax error i被宣布在 而且在外