【问题标题】:Regarding Java for-each additional variable declaration关于 Java for-each 附加变量声明
【发布时间】:2011-11-16 13:22:12
【问题描述】:

在正常的 for 循环中,我们可以做多个变量声明并限制它们在循环内的范围

例如:如果我有一个 ArrayList myList of

for(int i=0, j=5 ; i <myList.size() ; i++, j--)

现在 i & j 仅限于循环范围

我们可以用 for-each 做类似的事情吗 // 限制循环范围并在每次迭代时改变它的值

for (Integer value : myList) {
}

【问题讨论】:

  • 不,并将其范围限制在循环中,不。如果您需要for 循环功能,请使用for 循环。

标签: java foreach


【解决方案1】:
int i = 0;
int j = 5;
for (Integer value : myList) {
  i++; j--;
  // Code
}

你仍然可以在 for 之外的范围内访问它们,但你不能在 for 中初始化它们:/

【讨论】:

  • 您应该在运行代码后递增 i 并递减 j,否则它与 for 循环执行不匹配。也就是说,由于i 只是用作访问列表元素的索引,因此foreach 循环中可能根本不需要它。
  • @Christian 我想限制循环内 j 的范围
  • @Anish,如果您限制 i 和 j 的范围,您可以将他的答案放在 { } 大括号内,但在增强的 for 循环本身内无法做到这一点。跨度>
【解决方案2】:

基本上,通过增强的 for 循环,您将绑定到(隐藏的)迭代器形式。 因此,您不能将变量范围保留在循环内并对其进行修改,因为您不能对 java 中的局部变量使用 static 修饰符。克里斯蒂安的回答中描述了您能做的最好的事情。 (或者回退到基本的 for 循环)

【讨论】:

    猜你喜欢
    • 2011-09-02
    • 1970-01-01
    • 1970-01-01
    • 2011-05-28
    • 2018-09-27
    • 1970-01-01
    • 1970-01-01
    • 2018-02-03
    • 1970-01-01
    相关资源
    最近更新 更多