라벨이 전역변수인 게시물 표시

[JAVA] 지역변수와 전역변수

이미지
JAVA 지역변수와 전역변수 java는 블록레벨 스코프이다.  즉 { } 중괄호 안에 작성한 변수의경우 그 중괄호 안에서만 사용이 가능하다. 만약에 전역변수를 사용하고자한다면 public class로만 작성된 최상위 {}중괄호 안에 작성하면 된다. 사진1 사진2 사진1은 전역에 선언된 변수 a와 b이다. 그리고 이러한 전역변수를 method1과 method2에서 사용 가능하다. 각각의 메소드 안에서 a=5와 같이 작성하면 전역변수로 선언된 static double a의 값을 5로 변경할 수 있다.  반면에 각각의 메소드 안에서 double a = 5를 작성하면 지역변수로 새로운 a가 생성되어 전역에 선언된 변수의 값을 참조하거나 변경하지않고 해당 메소드의 { }중괄호 안에서만 유효한 지역변수가 생성된다. 사진2에서 main메소드안에 선언된 변수 a, b는 { }중괄호 안에서만 유효한 지역변수이므로 method1과 method2에서 사용이 불가능하여 에러가 발생한다. 즉 블록레벨 스코프를 가지고있다. 한가지 예시를 더 보면 main메서드안에 a메서드가 호출되면서 반복문의 증감연산자가 제대로 동작안하고 계속되서 0을 출력할것이라고 예측해볼 수 있다. 하지만 위의경우 숫자를 순차적으로 출력한다. 그럴 수 있는 이유는 a메서드 내에 선언된 i는 해당 메서드 안에서만 존재하는 지역변수이기 때문이다. 그러므로 반복문에 들어가더라도 반복문에 선언된 변수i에 영향을 주지 않으므로 번호를 순차적으로 결과값으로 출력할 수 있다.

[JavaScript] 전역변수와 지역변수

*함수안의 변수를 지역변수라고하며 함수밖의 변수를 전역변수라고한다 . 1번 var로 지역변수 전역변수를 지정한경우(함수밖에서 호출한경우) ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ var vscope = 'global'; function fscope(){     var vscope = 'local'; } fscope(); alert(vscope); ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ -> 전역변수 global을 값으로 가져온다. 2번 var로 지역변수 전역변수를 지정한경우(함수안에서 호출한경우) ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ var vscope = 'global'; function fscope(){     var vscope = 'local';     alert(vscope); } fscope(); ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ -> 지역변수 local을 값으로 가져온다. 1차적으로 호출한값을 지역변수를 찾고 없을경우 전역변수에서 가져온다. 만약에 지역변수로 var vscope = 'local';이 없었다면 전역변수 global을 값을 경고창에 띄운다. 지역변수를 var을 빼고 지정하면 전역변수로 취급한경우 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ var vscope = 'global'; function fscope(){      vscope = 'local';     alert(vscope); } fscope(); alert(vscope); ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ -> 지역변수 local을 값으로 가져온다. 함수안에서 var를 사용하지않고 변수를 지정해줄경우 지역변수로 취급되지않고 전역변수에 선언된 v