Java/[inflearn] 자바 입문

[김영한_자바입문][8. 배열] 변수 선언 및 초기화 (p.24)

줌인. 2024. 1. 19. 17:09
코드 가독성과 변수의 명확한 용도를 강조하기 위해
스코프를 변수를 선언과 동시에 초기화하는 것이 나만의 로직이다!

 

 

 

▶ 기존 코드 작성 내용 참고 및 나만의 로직 정의

https://zoooom-in.tistory.com/28

 

[김영한_자바입문][7. 훈련] 변수 선언 및 초기화_임시 변수 (p.14, p.17, p.21)

[p.14 / 선생님 작성 코드] int temp(임시변수)의 단독 선언 -> 초기화X public static void main(String[] args) { int a = 10; int b = 20; int temp; temp = a; a = b; b = temp; System.out.println("a = " + a); System.out.println("b = " + b); } [

zoooom-in.tistory.com

 

[p.24 / 선생님께서 작성한 코드] average 변수 선언 및 초기화는 추후 진행

public class ArrayEx4_1 {

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

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

        average = (double) sum / number.length;
        System.out.println("입력한 정수의 합계 : " + sum);
        System.out.println("입력한 정수의 평균 : " + average);

    }

 

[p. 24 / 내가 작성한 코드] double의 스코프 값 최소화 및 변수 선언 및 초기화 동시 진행

public class ArrayEx4 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int [] number = new int[5];
        int sum = 0;

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

        double average = (double) sum / number.length;
        System.out.println("입력한 정수의 합계 : " + sum);
        System.out.println("입력한 정수의 평균 : " + average);

    }

 

앞서서 나는 나만의 로직을 설정했다.

따라서 특이 케이스가 아니라면 추후 컴파일러에서 경고를 피하기 위해 변수를 선언하면서
동시에 초기화를 설정하는 것이 내가 설정한 나만의 프로그램 로직이 될 것이다.

 

금번에도 상기와 같이 코드를 작성한 이유는

 

1.  `average` 변수가 선언과 동시에 초기화되어 실제 값이 어떤 것인지 명확하게 드러나므로, 코드를 처음 읽는 사람이나 유지보수를 하는 사람이 빠르게 이해하기 위함이다.

 

2.  또한 변수의 용도와 값의 의미를 한눈에 파악할 수 있게 하기 위함이다.


3. 선생님께서 작성한 코드는 내가 판단하기에 초기화가 언제 이루어질지 명시적으로 나타나지 않는다고 판단했다.

   즉 'average' 변수는 나중에 초기화될 것이지만, 그 값이 언제 정해지는지 코드를 더 자세히 읽어봐야 한다곳 생각했다.

종합적으로, 초기화와 선언을 동시에 하는 코드가 가독성 측면에서 조금 더 우수하다고 판단하여,

두번째와 같은 나만의 로직을 사용하여 코드를 작성했다.

728x90