我正在尝试打印/获取循环变量 i 的值,并在 for 循环之外的另一种方法中使用它。我怎么做?
public void mousePressed() {
for (int i = 0; i < 1000; i++){
boxes[i].openIt();
}
}
你不能,根据定义,值j
只能在这个循环中使用。但是当然你可以在这个 for 循环之外声明一个变量,并将它分配给你循环中的某个东西。你到底希望它是什么值?因为最后你的计数器的值j
总是一样的。
声明中声明的变量for
仅在for
组件和以下代码块中的范围内,请参阅JLS 第 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);
有关简短摘要,请参阅此页面,特别是末尾的Loop Scope示例,其中有一个与您的问题完全相同的示例。