지역변수의 범위를 최소화하라

선언 시점

반복문(for? while?)

for (Element e : c) {
	... // Do Something with e
}
for (Iterator<Element> i = c.iterator(); i.hasNext(); ) {
	Element e = i.next();
	... // Do something with e and i
}

반복문의 변수 범위가 한정되지 않을 경우 문제

Iterator<Element> i = c.iterator();
while (i.hasNext()) {
	doSomething(i.next());
}
// ...

Iterator<Element> i2 = c2.iterator();
// 일부러 i 받아서 쓴거임!
while (i.hasNext()) {
	doSomethingElse(i2.next());
}

For 문 사용 시 장점

for (Iterator<Element> i = c.iterator(); i.hasNext(); ) {
	Element e = i.next();
	... // Do something with e and i
}
...
// Compile-time error - cannot find symbol i
for (Iterator<Element> i2 = c2.iterator(); i.hasNext(); ) {
	Element e2 = i2.next();
	... // Do something with e2 and i2
}