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 밑으로만 선언이 안되면 되기에 문제가 없음