자바의 변수는 아무데서나 사용할 수 있는게 아니라, 사용할 수 있는 범위가 정해져 있다. 코드를 작성하는 위치에 따라 사용할 수 있는 변수가 달라진다.
또한 변수가 속한 범위 ( { --- } ) 내에서 존재하며 참조 가능하다.
자신보다 하위블록으로는 침투할 수 있다.
int num = 100;
if( num == 100 ){
// num이 현재 블록의 바깥에서 선언되었으므로 유효
System.out.println( num );
}
int num은 if함수보다 바깥에서 선언 되었으므로 유효하다.
자산이 선언된 블록 ( { --- } ) 밖으로는 빠져나갈수 없다.
int num = 100;
if ( num == 100 ){
int result = num + 100;
}
// 변수 result 가 if블록 안에서 생성되었으므로 사용불가
System.out.println( result );
result는 if 함수의 블록( { --- } )안에서 생성된 변수로 블록 밖에서는 사용할 수 없다.
for( int i=0; i<10; i++ ){
...
}
System.out.println( i );
마찬가지로 i가 for문을 위한 괄호 안에서 선언된 변수이므로 for문의 블록 밖에서는 사용할 수 없다.
블록 안에서 선언된 변수는 블록밖에서 존재하는 동일한 이름의 변수와는 이름만 동일 할 뿐, 다른 값으로 인식된다.
int target = 100;
if (target == 100){
int num = target + 100;
}else{
int num = target -100;
}
if문 안의 int num 과 else 문 안의 int num은 같은 이름을 가졌지만 다른 값으로 인식된다.