inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

문제와 풀이1

초기화 선언 관련 질문

해결된 질문

457

나누스_개발

작성한 질문수 1

2

 

안녕하세요!!

지금 배열 문제풀이 하고 있는데요,

보통 int sum = 0;

이런식으로 0값으로 초기화 시켜주잖아요

근데 어떤때는 double avg;

이런식으로 그냥 하는데 두개의 차이가 뭐지궁금해요

 

코드 만들다보면 계산식이 어디있냐에 따라

어떤때는

double avg; 쓰고 어떤때는 0으로 초기화시켜야 돌아가더라구요..! 혹시 정확하게 구분지을 수 있을까요?

java 객체지향

답변 2

2

나누스_개발

정말 감사합니다!

1

김영한

안녕하세요. 나누스_개발님

자바에서 지역 변수의 경우 한번이라도 값이 대입 되어야 해당 변수를 사용할 수 있습니다.

다음 코드를 보고 이야기하신 듯 하여 이 코드로 설명을 드리겠습니다.

public class ArrayEx4 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int[] numbers = new int[5];
        int sum = 0;
        double average;

        System.out.println("5개의 정수를 입력하세요:");
        for (int i = 0; i < 5; i++) {
            numbers[i] = scanner.nextInt();
            sum += numbers[i];
        }

        average = (double) sum / 5;

        System.out.println("입력한 정수의 합계: " + sum);
        System.out.println("입력한 정수의 평균: " + average);
    }
}

이 코드에서 sum 변수는 sum += numbers[i] 연산을 사용하게 됩니다.

이 연산자는 결국 sum = sum + numbers[i]와 같은 연산을 하게 됩니다. 결과적으로 오른쪽에서 sum 이라는 값을 읽어서 사용해야 합니다. 오른쪽의 sum 값을 읽어서 사용하기 전에 값을 먼저 대입해야 합니다. 그래서 sum=0이라는 초기값을 먼저 대입한 것입니다.

 

반면에 average는 다음과 같이 단순히 대입만 합니다. 결과적으로 이 시점에 초기화가 일어나는 것이지요.

average = (double) sum / 5;

따라서 이 경우 먼저 초기화 하지 않아도 괜찮습니다.

감사합니다.

문제와 풀이4 문제점

0

49

2

문제풀이 시간마다 방향성

0

46

2

피라미드 문제 풀이

0

73

1

ScannerWhile3 예제 코드 질문

0

58

1

짝수 출력 문제 질문

0

53

1

Array 연습 문제 5번 질문입니다.

0

85

2

단축어가 이상하게 나옵니다

0

133

2

Sql강의

0

91

1

array 문제풀이 2번 질문입니다.

0

57

1

JAVA입문 / 메서드편 문제와 풀이2

0

48

1

인텔리제이 무료버젼이 통합되었다는데 30일 무료버전이면 어떻게 사용하나요

1

816

3

OperationEx3에서 꼭 boolean을 써야 하나요?

0

63

1

for, while문 작성

0

66

1

68강 ArrayEx6 클래스 질문

0

61

1

IO.println(String.format("Hello and welcome!"));

0

153

2

소스코드 실행이 안돼요

0

120

2

메서드 문제와 풀이2에서 마지막 문제 이렇게 풀어도 괜찮은 건가요..?

0

80

1

While과 for 스코프 질문

0

64

1

김영한 java 입문 설치 질문

0

139

2

버퍼문제?

0

55

1

for문 피라미드 찍는거 질문

0

79

1

21버전이 없고, 강의 메뉴얼 확인해보면 된다는 김영한 선생님 답변 확인했습니다.

0

377

1

3번 문제 질문 있습니다.

0

100

2

sout에는 변수가 하나만 들어가야 하나요?

0

135

1