在java中的for循环外打印i的值

时间:2013-11-05 22:08:21

标签: java for-loop

我正在尝试打印/获取循环变量i的值,并在for循环外的另一个方法中使用它。我该怎么做?

public void mousePressed() {  
    for (int i = 0; i < 1000; i++){
      boxes[i].openIt();
    }
}

2 个答案:

答案 0 :(得分:3)

根据定义,您无法在此循环中使用j的值。但是当然你可以在for循环之外声明一个变量并将它分配给循环中的某个东西。你想要的确是什么价值?由于最后的计数器j的值始终相同。

答案 1 :(得分:2)

for语句中声明的变量仅在for组件和以下代码块的范围内,请参阅JLS section 14.14.1.1,特别是:

for ( ForInit ; Expression ; ForUpdate ) Statement
  

如果ForInit代码是局部变量声明,则执行为   如果是出现的局部变量声明声明(第14.4节)   一个街区。

如果您希望在for之外使用它,则必须在要访问它的位置中处于活动状态的范围内声明它;例如就在for循环之外:

int i;
for (i = 0; i < 1000; ++ i)
    ;
// i is accessible in this scope
System.out.println(i);

或者,如果它更合适,您可以声明一个单独的变量并将感兴趣的值存储在其中:

int k = ...;
for (int i = 0; i < 1000; ++ i)
    if (condition) // for example
        k = i;
// k is accessible in this scope, i is not
System.out.println(k);

有关摘要,请参阅this page,特别是最后的循环范围示例,其示例与您的问题完全相同。