변수를 생성할떄 int a = 0; 이런식으로 초기화 하는경우도 있고 그냥

int a; 이런식으로 하는경우도 있던데 둘중 무슨차이인가요?
몰론 그냥 초기화 하지않는 변수를 만들어 버리면 쓰레기 값이 나온다는건 알고있는데....

문제를 보면 가끔 0으로 초기화 하는경우도 있고 않하는경우도 있길래...
어떤 경우여야지 0으로 초기화를 안해도 되나요...?

답변해주신다면 정말감사하겠습니다 ㅠㅠ