C 프로그래밍을 할때에는 보통 아래와같이 지역변수 (i, strike, ball, out) 들을 블록 맨 앞부분에 선언한다.
사용은 코드 마지막에 사용할지라도 맨 앞에 선언했다.
int main(void) {
int i = 0;
int strike = 0;
int ball=0,
int out = 1;
printf("Game Start!");
intputNumber();
strike = checkStrike();
return 0;
}
이런 관습에 익숙한 프로그래머는 자바에서도 습관대로한다... 바로 나 ㅠㅠ
그러나 자바에서는 "처음으로 해당 변수를 사용하는곳에 선언" 하는것을 권장하고있다.
package com.jhkook.remote;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
print("Game Start!");
intputNumber();
int strike = 0;
strike = checkStrike();
}
}
지역변수를 너무 먼저 선언하게되면 실제로 코드가 짧을땐 상관이 없지만,
코드가 길어지게되면 해당 변수가 사용될때쯤 변수의 자료형과 초기값을 잊어버릴 위험이 크다.
그리고 지역변수를 너무 앞쪽에 선언하게되면 유효범위가 확장되기때문에 원래 사용하려고 했던곳 이외의 장소에서 실수로 사용되어 끔찍한 버그를 만들어낼 가능성도 있다.
또한 "모든 지역변수 선언에는 초기값이 포함되어야 한다"
변수를 초기화하기에 충분한 정보가 없다면 그때까지는 선언을 미뤄야한다.