지역 변수가 선언된 블록 (
{}
)이다.
지역 변수가 선언된 블록을 벗어나서 해당 변수를 사용하면 컴파일 에러가 발생한다.
보통 while은 복잡한 조건문을 적용할 때 사용하기 좋고, for문은 정해진 횟수만큼 반복 수행하는 경우에 사용하기 적합하다.
용도에 따른 반복문 적용의 차이 이외에 한번 scope관점에서 while 문과 for 문의 차이를 바라보고자 한다.
public class WhileEx {
public static void main(String[] args) {
int sum = 0;
int i = 1;
int endNum = 3;
while (i <= endNum) {
sum += i;
System.out.println("i=" + i + " sum=" + sum);
i++;
}
}
}
i
와 endNum
변수는 while문 scope 범위 밖에서 선언되어 while문이 종료되어도 해당 지역 변수들은 생명 주기에 남아있다.public class ForEx {
public static void main(String[] args) {
int sum = 0;
for (int i = 1, endNum = 3; i <= endNum; i++) {
sum += i;
System.out.println("i= " + i + " sum= " + sum);
}
}
}
i
와 endNum
은 for문의 scope의 내부의 지역 변수로 한정하여 for문 종료 시 해당 지역 변수는 생명 주기에서 사라지게 된다.[참고 자료]