끝을 보는 용기

Spring 사전캠프 Day 018 - 자바(Java) 공부: 변수 (5/6)

writingforever162 2024. 10. 24. 23:08

"와, 정말 정리할 엄두가 안 난다."

 

컴퓨터 본체를 교체하고 키보드 문제를 해결하고 나니 밤 10시를 훌쩍 넘겼다. 어쩐지 오늘따라 강의 내용이 머릿속에 쏙쏙 들어왔다. 운동과 저녁 식사를 마친 후 진득하게 앉아서 가지치기에 들어가려고 했더니만, 컴퓨터가 말썽이었다. 

아침에 일어나서 강의를 들으며 새로운 내용이며 실습한 사진을 쭉 적어 내려가니, 작성한 글만 세 편이 나왔다. 도저히 자정 전까지 저 많은 내용을 곱씹고 간추릴 엄두가 안 나서 오늘은 '변수의 초기화'만 요약하고 남은 내용은 내일 아침으로 미루었다. 블루스크린을 하도 많이 봐서 지금 TIL을 작성할 수 있어서 그저 다행일 따름이다. 정리 못 한 내용이 머릿속에 맴돌면서 잠을 설칠까 봐 잠시 고민했으나 기우였다. 이 순간에도 감길락 말락 하는 눈꺼풀과 줄다리기를 벌인다. 체력이 바닥날 만큼 공부를 열심히 했나 보다. 그 증거로 졸음이 다가와서 마음은 뿌듯하다.

 

[습관 관련]

새벽에 달리기를 하고 싶어 오전 6시 반에 알람을 맞춘지 오늘로 나흘째, 밤공기에 살얼음이 낀 탓인지 전날과 다를 바 없이 소리만 듣고 곧장 이불 속으로 깊숙이 들어갔다. 본캠프 기간에 언제 운동할지 아직 감을 잡지 못했는데, 남은 사전캠프 기간에 찾아내면 좋겠다. 학습 열의와 체력이 팔짱 끼고 함께 뛸 수 있도록 말이다.

 

[인용 및 참고 출처]

1. 강의: 클래스101 온라인클래스, "[100제 풀이] 예제로 마스터하는 Java(자바) 종합 클래스", 강의 소개, (2024.10.24)

2. 구글 검색: velog, "자바 여러 변수 초기화", 동시에 여러 변수 선언 및 초기화, (2024.10.24)

3. 사전: "incompatible", 네이버 영어사전, 네이버 영어사전, (2024.10.24) 

 

[학습 관련]

1. 변수의 초기화

ⓐ 선언한 변수에 처음으로 값을 저장하는 것 

ⓑ 모든 변수는 사용하기 전에 적절한 값으로 초기화하는 편이 좋음

public class VariablePrac5 {
    public static void main(String[] args) {
      int prac1 = 10; 
      // 변수 타입은 정수형 int, 변수 이름은 prac1
      // 변수 선언과 함께 10이란 값을 x에 저장하여 초기화 진행
      int prac2 = 20; 
      // 변수 타입은 정수형 int, 변수 이름은 prac2
      // 변수 선언과 함께 10이란 값을 x에 저장하여 초기화 진행
      System.out.println(prac1); // 10 출력
      System.out.println(prac2); // 20 출력
    }
}

 

2. 유의 사항 

public class VariablePrac5 {
    public static void main(String[] args) {
      int prac1 = 10; double prac2 = 10;
      // [1] prac1 변수는 실수형 타입(double)이므로 10.0 출력
      //     prac0 변수는 정수형 타입(int)이므로 10 출력
      // [2] 변수 선언과 초기화는 위와 같이 나란히 작성해도 문제없다.
      char prac3 = 'A'; String prac4 = "Korea";
      // [3] 문자형 char는 작은따옴표(' ')를 사용한다.
      //     문자열 String은 큰따옴표(" ")를 사용한다.
      //     String의 첫 글자 S는 대문자로 입력해야 한다.
      //     prac3 변수는 A 출력, prac4 변수는 Korea 출력
      System.out.println(Long.MAX_VALUE);
      // [4] 변수 타입의 최댓값을 넘으면 오류가 발생한다. 
      //     따라서 MAX_VALUE로 최댓값을 꼭 확인해야 한다.
      //     정수형 타입 Long의 최댓값인 9223372036854775807 출력
      //     정수형 타입 복습: 크기 순으로 byte < short < int < long
      long prac5 = 70000000000001L;
      float prac6 = 9.81238F;
      // [5] 정수형 long 맨 끝에는 접미사 L이 붙어야 한다.
      //     실수형 float 맨 끝에는 접미사 F가 붙어야 한다.
      //     접미사는 소문자도 가능하나 l은 1과 비슷하므로 대문자가 낫다.
      //     prac5 변수는 70000000000001 출력, prac6 변수는 9.81238 출력
    }
}

 

3. 변수 타입이 동일할 때 변수를 동시에 초기화하기

값이 변수마다 같을 때

public class VariablePrac5 {
        public static void main(String[] args) {
            String str1, str2, str3; 
            // [1] 문자열 변수 str1, str2, str3 선언
            str1 = str2 = str3 = "Korea"; 
            // [2] Korea라는 값으로 각 변수 초기화 

            System.out.println(str1);
            System.out.println(str2);
            System.out.println(str3); 
            // [A] str1, str2, str3 변수를 각각 출력할 때
            //     Korea
            //     Korea
            //     Korea 출력
            System.out.println(str1 + "-" + str2 + "-" + str3); 
            // [B] str1, str2, str3 변수를 한꺼번에 출력할 때
            //     Korea-Korea-Korea 출력
            //     "-"가 없으면 KoreaKoreaKorea를 출력하므로 주의
        }
}

 

값이 변수마다 다를 때: 선언과 초기화를 각각 진행하거나 한꺼번에 진행할 수 있음

public class VariablePrac5 {
    public static void main(String[] args) {
      // [1] 변수 선언 후 각각 초기화하기
      //     [1]의 예시는 정수형 변수 int
      int numPrac1, numPrac2, numPrac3;
      numPrac1 = 900;
      numPrac2 = 400;
      numPrac3 = 700;
      System.out.println(numPrac1+"\t"+numPrac2+"\t"+numPrac3);
      // 900 400 700 출력
      // \t는 띄어쓰기를 의미하며 큰따옴표(" ") 안에 있어야 적용됨
      // 변수를 띄어 쓰지 않으면 덧셈 연산이 이루어져서 2000이 출력됨

      // [2] 변수 선언과 동시에 초기화하기
      //     [2]의 예시는 실수형 변수 double
      double sample1 = 12.5, sample2 = 7.09, sample3 = 300.5;
      System.out.println(sample1+"\t"+sample2+"\t"+sample3);
      // 12.5 7.09 300.5 출력
    }
}

 

4. 실습 결과

호기심에 이것저것 입력하다 보면 시간이 훅 지나간다. 친절하게도 자바는 100은 정수형 int로, 3.14는 실수형 double로 바꾸라고 알려준다. 겸사겸사 '(두 가지 물건이 종류가 달라서) 함께 쓸 수 없는, 호환성이 없는'을 의미하는 'incompatible' 단어도 복습했다. 논리형 변수 boolean에 저장할 값은 무조건 소문자로 써야 한다는 사실과 함께.

 

[24.10.27 추가] 실습 후 반성: 생각보다 자바(Java)는 친절했다. num만 입력해도 numPrac1부터 numPrac3까지 나와서 자동 완성 기능의 유혹이 끊이질 않았다. 본캠프 때는 종종 쓰겠지만, 아직은 배우는 중이니 최대한 이 기능을 쓰지 않고 직접 입력하련다. 물론 그동안 꽤 고생할 손목에는 미리 미안하다고 얘기했다.

 

[기타 사항]

내일 복습할 때 얼마나 많은 내용이 머릿속에 붙었고 떨어졌는지 점검할 수 있겠다. 오늘 맡은 데일리 스크럼(Daily Scrum)과 회고도 걱정과 달리 나름 잘 진행해서 기분이 좋았다. 컴퓨터 문제로 시간에 스위치를 달아둔 채 끄지 못한 점은 정말 아쉽다. 그래도 오늘 미룬 정리를 마저 해야 하니 내일 딴짓할 일은 없겠다고 좋게 생각하련다.