코드 가독성과 변수의 명확한 용도를 강조하기 위해
스코프를 변수를 선언과 동시에 초기화하는 것이 나만의 로직이다!
▶ 기존 코드 작성 내용 참고 및 나만의 로직 정의
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' 변수는 나중에 초기화될 것이지만, 그 값이 언제 정해지는지 코드를 더 자세히 읽어봐야 한다곳 생각했다.
종합적으로, 초기화와 선언을 동시에 하는 코드가 가독성 측면에서 조금 더 우수하다고 판단하여,
두번째와 같은 나만의 로직을 사용하여 코드를 작성했다.
'Java > [inflearn] 자바 입문' 카테고리의 다른 글
[김영한_자바입문][9. 메서드] 변수 선언 및 초기화 (p.30) (0) | 2024.01.19 |
---|---|
[김영한_자바입문][9. 매서드] 반환타입과 매개변수가 다를 때_묵시적 형변환 (p.25) (0) | 2024.01.19 |
[김영한_자바입문][8. 배열] 향상된 for문 / 일반 for문 (p.19) (2) | 2024.01.19 |
[김영한_자바입문][7. 훈련] 변수 선언 및 초기화_임시 변수 (p.14, p.17, p.21) (0) | 2024.01.19 |
[김영한_자바입문][4. 조건문] 변수 선언 및 초기화 (p.11) (0) | 2024.01.18 |