• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

5.10강 y변수 입력받을때를 고려하면 static 사용

24.04.14 15:53 작성 조회수 69

1

제목에 거의다쓴거같은데

int y = getInt(); 에서

위에 x선언할때 썼던

getInt()함수를 한번 더 사용중이니까

함수 안의 int x; 선언문을

static int x; 로 바꾸는게 더 좋은건지 궁금합니다.

답변 1

답변을 작성해보세요.

2

Soobak님의 프로필

Soobak

2024.04.14

안녕하세요, 질문&답변 도우미 Soobak 입니다.

 

static 키워드를 사용하여 지역 변수를 선언하는 것은, 해당 함수가 함수 호출 마다 값을 유지하도록 하는 경우에만 사용하는 것이 좋습니다.

getInt() 함수는 정수를 입력받아 반환하는 간단한 기능을 하므로, 다음과 같은 이유로 static 변수로 변경하는 것은 좋지 않은 것 같습니다.

  • getInt() 함수는 호출될 때마다 새로운 값을 입력 받아 반환하는 기능을 합니다.
    만약, xstatic 으로 선언하면, 첫 번째 호출에서 입력받은 값이 이후의 호출에도 영향을 미칠 수도 있게 됩니다.

  • static 변수는 프로그램 시작 시 초기화되고, 프로그램이 종료될 때까지 그 값이 유지됩니다.
    따라서, 처음 getInt() 를 호출하여 입력한 값이 다른 곳에서 getInt() 함수를 호출 할 때 재사용될 수 있는 문제가 발생할 수 있습니다.

  • 마지막으로, 함수의 재사용 가능성은 함수의 중요한 부분 중 하나입니다.
    이 때, 재사용성을 높이기 위해서는 함수가 가능한 독립적으로 존재해야 합니다.
    만약, static 변수를 사용하면, 함수가 해당 변수에 의존하게 되므로 재사용성이 줄어드게 됩니다.

     

따라서, 함수가 호출될 때 마다 독립적으로 새로운 입력을 받고, 이전 입력의 값에는 영향을 받지 않도록 int x 선언으로 사용하는 것이 더 좋은 방법이라고 생각합니다.

 

배성우님의 프로필

배성우

질문자

2024.04.15

감사합니다!