增强的for循环中局部变量的范围

Eypros

我有一个关于变量范围的相当简单的问题。

我对增强型循环很熟悉,但是我不明白为什么我应该声明一个新变量来保留每个元素。一个例子可以澄清我的问题:

        int[] ar = {1, 2, 3};
        int i = 0;
        for(i : ar) {  // this causes an error if I do not declare a new variable: int i
//        for(int i : ar) // this works fine
            System.out.println(i);
        }

那为什么要声明这个新变量呢?毕竟i在for循环内是可访问的。我不想使用任何先前的值i,只是不想声明一个新变量。(我猜想对于其他可迭代项,使用相同的变量可能会更快)。

我想这就是增强型循环的构建方式,但这不会破坏整个范围的想法吗?

上述行为引起了一个问题。编译器是否在整个循环中使用相同的变量for并只是更新其值,还是为每次迭代创建一个新变量

一个有趣的部分是,如果我同时保留int i的声明(在for循环之前和循环之内),我什至会收到有关以下内容的编译器错误:

局部变量i重复

这(至少对我而言)使事情变得更加奇怪。因此,我不能ifor循环使用先前声明的变量但也不能循环内使用相同的名称声明一个新变量

用户名

那为什么要声明这个新变量呢?

因为这就是定义语法的方式

毕竟我可以在for循环内访问。

这就是语义。它与语法无关。

我不想使用任何以前的i值,只是不想声明一个新变量。(我猜想对于其他可迭代项,使用相同的变量可能会更快)。

不要猜测性能。测试和测量。但是在这种情况下,没有什么可衡量的,因为任何有效的代码都比任何非有效的代码都要快。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

增强的for循环中局部变量的范围

来自分类Dev

枚举常量中局部变量的范围

来自分类Dev

枚举常量中局部变量的范围

来自分类Dev

Python中局部变量的范围

来自分类Dev

C中局部变量的范围和生存期

来自分类Dev

C中局部变量的范围和生存期

来自分类常见问题

基于范围的for循环中的“局部变量的地址可能会转义函数”

来自分类Dev

基于范围的for循环中的“局部变量的地址可能会转义函数”

来自分类Dev

javascript - 函数表达式和声明中局部变量的范围

来自分类Dev

C ++中局部于静态方法的变量的范围

来自分类Dev

C ++中局部变量和时间变量之间的差异

来自分类Dev

函数中的局部变量将在循环中多次运行

来自分类Dev

锈期货::选择循环中修改局部变量

来自分类Dev

函数中的局部变量将在循环中多次运行

来自分类Dev

Python - UnboundLocalError:在循环中赋值之前引用的局部变量

来自分类Dev

埃菲尔附加声明中局部变量的意义是什么?

来自分类Dev

函数返回c中局部变量的地址

来自分类Dev

使用局部变量增强精神

来自分类Dev

JS for循环中的局部变量到全局变量,循环结束后更改值

来自分类Dev

汇编中局部和全局范围内的const变量

来自分类Dev

循环内或循环外的局部变量

来自分类Dev

Java在循环中使用getter还是创建局部变量?

来自分类Dev

从while循环中更改f字符串局部变量?

来自分类Dev

使用局部变量为循环中的元素设置onclick方法,而无需立即激活它

来自分类Dev

在foreach循环中出现“使用未分配的局部变量”错误,并返回收益

来自分类Dev

在while循环中使用最终局部变量时出现不同的编译错误

来自分类Dev

如何在循环中使用 Func 或 Action 而不是局部变量?

来自分类Dev

在没有局部变量访问的情况下继续在 for 循环中附加 [to stream]

来自分类Dev

Python关闭,局部变量范围错误

Related 相关文章

  1. 1

    增强的for循环中局部变量的范围

  2. 2

    枚举常量中局部变量的范围

  3. 3

    枚举常量中局部变量的范围

  4. 4

    Python中局部变量的范围

  5. 5

    C中局部变量的范围和生存期

  6. 6

    C中局部变量的范围和生存期

  7. 7

    基于范围的for循环中的“局部变量的地址可能会转义函数”

  8. 8

    基于范围的for循环中的“局部变量的地址可能会转义函数”

  9. 9

    javascript - 函数表达式和声明中局部变量的范围

  10. 10

    C ++中局部于静态方法的变量的范围

  11. 11

    C ++中局部变量和时间变量之间的差异

  12. 12

    函数中的局部变量将在循环中多次运行

  13. 13

    锈期货::选择循环中修改局部变量

  14. 14

    函数中的局部变量将在循环中多次运行

  15. 15

    Python - UnboundLocalError:在循环中赋值之前引用的局部变量

  16. 16

    埃菲尔附加声明中局部变量的意义是什么?

  17. 17

    函数返回c中局部变量的地址

  18. 18

    使用局部变量增强精神

  19. 19

    JS for循环中的局部变量到全局变量,循环结束后更改值

  20. 20

    汇编中局部和全局范围内的const变量

  21. 21

    循环内或循环外的局部变量

  22. 22

    Java在循环中使用getter还是创建局部变量?

  23. 23

    从while循环中更改f字符串局部变量?

  24. 24

    使用局部变量为循环中的元素设置onclick方法,而无需立即激活它

  25. 25

    在foreach循环中出现“使用未分配的局部变量”错误,并返回收益

  26. 26

    在while循环中使用最终局部变量时出现不同的编译错误

  27. 27

    如何在循环中使用 Func 或 Action 而不是局部变量?

  28. 28

    在没有局部变量访问的情况下继续在 for 循环中附加 [to stream]

  29. 29

    Python关闭,局部变量范围错误

热门标签

归档