inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

3. 최대 매출(Sliding window)

자바에서 변수 초기화에 대한 의견입니다.

539

Aurora

작성한 질문수 19

2

solution() {} 에서 중괄호 안에(메소드영역) 있는 변수(answer)를 지역변수라고 하는데 기본적으로 자바는 이 지역변수를 반드시 초기화를 해주어야 합니다. 안그러면 컴파일 에러가 발생하죠.

하지만 Main {} 처럼 클래스영역에 있는 변수를 전역변수 또는 멤버 변수(멤버 변수 = 클래스 변수 + 인스턴스 변수)라고 하는데 전역변수는 초기화를 하지 않아도 자동으로 기본값을 넣어줍니다.

영상에서 보여지는 코드는 solution 메소드 안에 있는 변수이므로 지역변수를 사용하고 int answer; 로만 선언을 했습니다.

이렇게만 하면 컴파일 에러가 발생하지만 밑에 줄에

answer = sum; 으로 초기화를 했기 때문에 컴파일 에러가 발생하지 않습니다.

멘토링 문제에서도 for {} 문 안에 변수 pi, pj 역시 지역 변수이므로 반드시 초기화를 해주어야 합니다.

java 코테 준비 같이 해요!

답변 2

0

이찬미

지역 변수라 자동 초기화가 안되는데다가, 초기화하는 코드가 if문 안에 있으니 조건에 따라 초기화가 안된 값을 사용하게 될 수 있으니 컴파일러에서 에러를 발생시키는 것 같습니다.

입력 값이 올바른 값이라는 것을 알고 있고, 조건문 안이 반드시 실행될 것이라는 것을 아는 저희의 관점을 컴파일러는 알지 못해서 발생하는 일이라고 생각합니다.

0

김태원

안녕하세요^^

감사합니다.

안녕하세요. 바뀐 채점사이트 관련해서 문의드립니다.

0

38

2

갑자기 채점 사이트가 바뀌었어요

0

35

1

문제 리스트 페이지

0

30

1

채점 사이트 관련 질문드립니다

0

24

1

봉우리 문제 질문입니다

0

87

2

씨름 선수 문제에서 각 선수의 몸무게나 키가 같을 수도 있다면?

0

66

0

이 코드랑 영상 코드중에 뭐가 더 좋은 코드인가요?

0

72

0

가중치 방향 그래프에서 가중치가 0인 간선을 표현하는 방법

0

68

1

좌표 정렬 문제 이 코드가 왜 틀린지 모르겠습니다 ㅠㅠ

0

85

2

6-7 강의에서

0

48

1

6-6. 장난꾸러기 질문 있습니다.

0

46

1

강의 수강후 코딩테스트

0

111

1

answer 변수 사용 여부

0

47

1

2중 for문

1

85

2

2-11. 임시반장정하기 (Runtime Error)

0

63

1

혹시 LinkedList 같은 자료 구조들은 따로 배우지 않나요?

0

70

1

이런 풀이는 어떨까요

0

44

1

자바 스트림 방식의 효율성 질문 드립니다.

0

59

1

알고리즘 자료 구조들..

0

63

1

StringBuilder vs BufferdWriter

0

49

1

원더랜드(프림)

0

50

1

이런 코드는 어떤가요?

0

62

1

bfs 풀이

0

57

1

병합정렬

0

58

1