【发布时间】:2011-05-02 15:22:57
【问题描述】:
我不能一直想知道为什么我不能写这样的东西:
for (int i : 3) {
System.out.println(i);
}
打印出来:
0
1
2
我的意思是,3 可以自动装箱为Integer,也可以是Iterable。
我知道,我选择了第一个元素为 0,但我认为这是常见的情况,并且它可以促进使用这种 ForEach 构造倒计时。
【问题讨论】:
-
只需使用常规的 for 循环。
(for int i: n)...不是 Java 习语,试图硬塞一些其他语言风格通常会给你带来麻烦 -
@Emil:“为什么 Java 数字不可迭代”?但让我换个说法:“为什么 Java 整数不可迭代,以便它们可以在 for each 循环中使用”。
-
我认为这是对语言的一个非常明智的补充。是的,这将是一个新的习语,但可读性强(恕我直言),不易出错(例如,传统的 for 循环重复
i3 次),并且可能会取代世界上近一半的 for 循环。如果我犯的每一个for (int j=0; j<LIMIT; ++i)错误都能得到一分钱……
标签: java foreach primitive-types