[Effective Java] 45. 변수 범위의 최소화
지역 변수의 유효범위를 최소화하면 가독성(readability)과 유지보수성(maintainability)이 좋아지고 오류 가능성도 줄어든다.
변수 범위를 최소화하는 가장 좋은 방법은 처음 사용하는 곳에서 선언하는 것이다.
지역 변수를 너무 빨리 선언하면 유효범위가 앞 뒤로 너무 확장될 수 있다.
반복문 사용시
기본적으로 for문 block 안의 변수는 for문 내부에서만 사용이 가능하기 때문에 while 문보다 좋다.
그리고, JDK 1.5에 추가된 for-each 문을 사용하는 것이 기존 for문을 사용하는 것보다 좋다.
변수의 입장에서 반복 인자가 없는 for-each문은 실수에 의한 버그를 줄여준다.
Iterator<Element> i = c.iterator();
for(i.hasNext()) {
doSomething(i.next());
}
Iterator<Element> i2 = c2.iterator();
for(i.hasNext()) { // 버그
doSomething(i2.next());
}
기존 for문은 위와 같이 컴파일 에러가 발생하지 않는 버그를 만들 위험이 있다.
반면 for-each 문은 그런 위험이 없다. 또한 코드가 짧아 가독성도 좋다.
for(Element e : c) {
doSomthing(e);
}
for(Element e : c2) {
doSomthing(e);
}
for문을 사용할때 변수 유효 범위를 줄이는 코드의 예는 또 있다.
아래와 같이 변수 범위조차 내부에 가둘 수 있다.
for(int i=0; n=list.size() ; i < n ; i++) {
doSomething(list.get(i));
}
댓글남기기