int x;
이렇게 선언하고 뒤에서 값을 할당함.
엄밀히 말하면 초기값이 안중요함. 어차피 입력값을 받아와서 조건부로 할당해야하는 상황임.
값이 영원히 할당 안될 수도 있음. 단, 그 경우는 해당 변수를 사용하지도 않음.
해당코드를 사용한 부분에서, might not have been initialized 오류가 뜨거든? 컴파일이 안돼.
근데 알고리즘상으로는 해당 사용하는 상황에는 (사용하는 상황에도 조건문이 걸려있음)
변수가 초기화되었음을 확신할 수 있는 상태임.
C같은 경우는 쓰레기값을 배정해놨다가 알고리즘상으로 문제없이 코드가 잘 돌아가서 그렇게 잘 넘어가겠지만
자바같은 경우는 그냥 컴파일이 안되는거임. 문제가 없는 코드임에도 불구하고.
이거 어떻게 처리함??
나같은 경우는 그냥 int x = 428571 박아서 해결했는데 (아무 값이나 쓴거임)
어차피 덮어씌워져서 사라질 데이터고,
덮어씌워지지 않는 경우는 사용되지 않을 변수임.
이거 좀 더러운데 해결책 없지?
초기값을 꼭 만들어야하는 상황임?
초기값을 만들지 않으면 컴파일에러. 근데 초기값이 무조건 사용되지 않는 상황임
초기값 만들어야지. c는 선언하면 주소값을 배치하고 거기에 써있는 쓰레기값을 쓰지만 자바는 지역변수는 디폴트값이 없다고 되어있음. (클래스 멤버 변수는 디폴트 0)
0 해야지
자바는 0으로 초기화되는데 컴파일이 안된다고?