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 scopeSystem.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 notSystem.out.println(k);
有关简短摘要,请参见本页,尤其是最后的 Loop
Scope 示例,该示例的示例与您的问题完全相同。



