我正在尝试打印/获取循环变量i的值,并在for循环外的另一个方法中使用它。我该怎么做?
public void mousePressed() {
for (int i = 0; i < 1000; i++){
boxes[i].openIt();
}
}
答案 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,特别是最后的循环范围示例,其示例与您的问题完全相同。