변수의 스코프(= 변수의 범위)

김현·2023년 7월 10일

자바

목록 보기
8/31

1. 자신보다 하위 블록으로는 침투할 수 있다.

int num = 100;
if( num == 100 ) {
System.out.println(num);
}

int num = 100;
for( int 1=0; i<10; i++) {
System.out.println(num + i);
}

-> num가 먼저 선언되고 if블록이 있기 때문에 if블록의 num는 문제가 없다.

2. 자신이 선언된 블록 밖으로는 빠져나갈 수 없다.

int num = 100;
if(num == 100){
int result = num + 100;
}
System.out.println(result);

-> result가 if블록 안에서 생성되었으므로 사용불가(출력에서 오류 생김)

for(int i = 0; i <10; i++) {
....
}
System.out.println(i);

-> 위와 같은 이유로 출력에서 오류생김

int i
for(i = 0; i <10; i++) {
....
}
System.out.println(i);

-> i를 for블록 밖에서 int로 선언했기때문에 오류가 생기지않음

3. 블록안에서 선언된 변수는 블록 밖에서 존재하는 동일한 이름의 변수와는 이름만 동일할 뿐, 다른 값으로 인식된다.

int target = 100;
if(target == 100) {
int num = target + 100;
} else {
int num = target - 100;
}

-> 실행에 문제없음

int num = 0;
if(target == 100) {
int num = target + 100;
} else {
int num = target - 100;
}

-> 밖에서 선언된 num가 있기에 if와 else 블록안에 있는 num가 오류가 생김

if(target == 100) {
int num = target + 100;
} else {
int num = target - 100;
}
int num = 0;

-> 밖에 선언된 num 밑으로만 선언이 안되면 되기에 문제가 없음

0개의 댓글