'지역변수'에 해당되는 글 1건

  1. 2010.03.27 메서드내에서 활용하는 변수....지역변수
뭐... 사실 다들 알고 있고 많이 사용하지만 변수의 종류를 다시 한 번 정리하면 흔히 멤버변수라면 인스턴스 변수를 말하는데 그것은 클래스변수로서 외부에서도 접근이 가능하며 해당값을 설정하여 그 클래스에서 적절히 연산하고 이를 반환하거나 사용한다. 하지만 단순히 메서드 내부에서만 사용하는 임시적인 변수또한 필요하다. 가령 반복문에서 반복의 범위를 결정할 때 사용하는 변수(흔히 i나 j)등 또는 메서드가 종료하면 필요가 없는 변수들이 그러하다. 이러한 변수를 지역변수라고 하며 이 지역변수는 메서드가 종료하면 이러한 변수의 값은 사라진다.

이번에는 Fraction클래스에 분수를 더하면 최대공약수를 표현하는 메서드 reduce를 구현한다.

-(void) reduce

{

int u = numerator;

int v = denominator;

int tmp;

while (v!=0) {

tmp = u%v;

u = v;

v = tmp;

}

numerator /= u;

denominator /= u;

}


reduce를 구현하는 이유는 종전의 클래스에서 add메서드를 실행할 경우 가령 1/4+1/2 = 6/8로 나오기 때문이다 따라서 이를 3/4로 표현하기 위함이다. 그보다...reduce함수안에 지역변수 u,v,tmp를 선언하여 그 값을 초기화하고 활용하고 있다. 메서드가 종료하면 이 값들은 사라지므로 메모리에 남겨두어 나중에라도 값을 참고하고자 한다면 static키워드를 사용해야 한다.

Posted by 버터백통