자바에서 변수 초기화에 대한 의견입니다.
539
19 asked
solution() {} 에서 중괄호 안에(메소드영역) 있는 변수(answer)를 지역변수라고 하는데 기본적으로 자바는 이 지역변수를 반드시 초기화를 해주어야 합니다. 안그러면 컴파일 에러가 발생하죠.
하지만 Main {} 처럼 클래스영역에 있는 변수를 전역변수 또는 멤버 변수(멤버 변수 = 클래스 변수 + 인스턴스 변수)라고 하는데 전역변수는 초기화를 하지 않아도 자동으로 기본값을 넣어줍니다.
영상에서 보여지는 코드는 solution 메소드 안에 있는 변수이므로 지역변수를 사용하고 int answer; 로만 선언을 했습니다.
이렇게만 하면 컴파일 에러가 발생하지만 밑에 줄에
answer = sum; 으로 초기화를 했기 때문에 컴파일 에러가 발생하지 않습니다.
멘토링 문제에서도 for {} 문 안에 변수 pi, pj 역시 지역 변수이므로 반드시 초기화를 해주어야 합니다.
Answer 2
0
지역 변수라 자동 초기화가 안되는데다가, 초기화하는 코드가 if문 안에 있으니 조건에 따라 초기화가 안된 값을 사용하게 될 수 있으니 컴파일러에서 에러를 발생시키는 것 같습니다.
입력 값이 올바른 값이라는 것을 알고 있고, 조건문 안이 반드시 실행될 것이라는 것을 아는 저희의 관점을 컴파일러는 알지 못해서 발생하는 일이라고 생각합니다.
안녕하세요. 바뀐 채점사이트 관련해서 문의드립니다.
0
19
1
갑자기 채점 사이트가 바뀌었어요
0
19
1
문제 리스트 페이지
0
22
1
채점 사이트 관련 질문드립니다
0
20
1
봉우리 문제 질문입니다
0
78
2
씨름 선수 문제에서 각 선수의 몸무게나 키가 같을 수도 있다면?
0
62
0
이 코드랑 영상 코드중에 뭐가 더 좋은 코드인가요?
0
70
0
가중치 방향 그래프에서 가중치가 0인 간선을 표현하는 방법
0
67
1
좌표 정렬 문제 이 코드가 왜 틀린지 모르겠습니다 ㅠㅠ
0
83
2
6-7 강의에서
0
47
1
6-6. 장난꾸러기 질문 있습니다.
0
43
1
강의 수강후 코딩테스트
0
106
1
answer 변수 사용 여부
0
42
1
2중 for문
1
83
2
2-11. 임시반장정하기 (Runtime Error)
0
62
1
혹시 LinkedList 같은 자료 구조들은 따로 배우지 않나요?
0
68
1
이런 풀이는 어떨까요
0
42
1
자바 스트림 방식의 효율성 질문 드립니다.
0
55
1
알고리즘 자료 구조들..
0
60
1
StringBuilder vs BufferdWriter
0
47
1
원더랜드(프림)
0
47
1
이런 코드는 어떤가요?
0
59
1
bfs 풀이
0
55
1
병합정렬
0
55
1

