본문 바로가기

JAVA/에러

[JAVA][에러] may not have been initialized

본 글은 글쓴이의 학습 목적으로 작성된 글입니다.

 

-배경-

JAVA에서 메서드(Method)를 통해 숫자를 단순하게 더하는 코드를 작성하는 도중 에러가 발생했다.

public class methodoutput {

    public static int test(int limit){
        int output;
        
        for (int i = 0; i <= limit; i++){
            output += i;
        }

        return output;
}

 

-에러 내용-

"output" 변수가 초기화가 안되어 있다고 나온다.

 

-원인-

검색 결과, 원인에 대한 설명이 나에게 너무 어렵다.

내용을 읽고 내가 생각한 내용은 다음과 같다

변수를 지정함으로써 메모리에 공간이 할당되었는데 메모리에 어떤 값도 들어있지 않다 보니 자바가 이상하게 생각해서 에러를 출력한 거 같다.

 

-해결 방안-

코드를 다음과 같이 수정했다.

public class methodoutput {

    public static int test(int init, int limit){
        int output = 0;
        
        for (int i = 0; init <= limit; i++){
            output += i;
        }

        return output;
    }
}

"output" 변수에 초기 값을 설정하니 에러가 사라졌다. 깐깐한 녀석

 

-참고 사항-

문자열 초기화 방법

String a = "";

정수형 초기화 방법

int a = 0;