1.在循环终止之后,不需要使用循环变量; for (Element e : c) { doSomething(e); } 但是跳出for循环之后,变量的作用域就存在了。 2.易于较早发现程序中的错误; Iterator<Element> i = c.iterator(); while(i.hasNext()) { doSomething(i.next()); } ... Iterator<Element> i2 = c.iterator(); while(i.hasNext()) { doSomething(i2.next()); } 此时有bug,但是程序能编译通过,甚至会产生意想不到的后果。而如果使用for循环,基本能让错误止步于编译阶段。 3.使用for循环更简短,增强了代码的可读性。 这点比较容易理解,for循环的语句更简洁。