inflearn

[인프런] 김영한의 자바 입문 강의 섹션4. 조건문 (231229)

hail2y 2023. 12. 30. 18:18

어제(12/29) 올렸어야 했는데 자바 별 피라미드 출력 문제 글이 다 날아가고 현타와서 못 했다. 이전 글과 마찬가지로 이 정리글은 일단 내가 새롭게 알게 됐거나 기록해 두고 찾아보고 싶은 것들을 위주로 써서 엄청나게 공들여서 쓰지는 않을 거다. 그렇게 하다보면 초반에 지쳐서 이후의 공부를 잘 못하게 된다, 나는. 그래서 노트필기 해두었던 거들만 올릴 것이다. 그래서 바로 본론으로 넘어가 보면..!

12/29 섹션4. 조건문 필기

조건문, 반복문 강의 들으면서 느낀 건 c랑 기본 문법이 정말 비슷하다는 점이었다. 그래서 크게 새로웠던 점들은 없었지만 친절히 설명해 주시는 걸 들으니 이건 기록해야겠다란 생각이 절로 들어서 기록해 둔 것들 중에 이미 알고 있는 내용이 많이 섞여 들어있다는 점ㅎ

 

if 조건식이 false면 코드블록 바깥으로 빠져나온다 

 

if로 연결 시 조건 중복 체크 -- elseif의 필요성

 

c처럼 코드블럭의 코드가 한 줄일 땐 중괄호 생략 가능 but 권장 안 함 나도 붙여야지

 

자바도 switch문이  똑같이 있어서 어렵지 않았다. 다만 형식만 대충 눈에 익어야 돼 

switch문은 단순히 값이 같은지만 비교할 수 있다.

 

조건식에 문자도 가능한데 "a" 큰따옴표로 묶어서 표현도 가능했다.

 

문자(char)로 표현한 예제 찾아보다가 문자열도 비교 가능하다는 걸 발견했다. 위의 말이 그 말이겠지만 enum 열거형도 가능했고 이때 따옴표 없이 표현하기도 하더라 테스트 돌려봤는데 아직 열거형 문법 보기 전이라(c언어 것도 까먹었고) 결과 나오기까지 좀 걸렸다; 

    public static void main(String[] args) {
        enum Season { SPRING, SUMMER, FALL, WINTER };

        Season currenSeason = Season.WINTER;

        switch ( currenSeason ) {
            case WINTER:    // ( Season.WINTER가 아니다! )
                System.out.println("December, January, February");
                break;
            case SPRING:
                System.out.println("March, April, May");
                break;
            case SUMMER:
                System.out.println("June, July, August");
                break;
            case FALL:
                System.out.println("September, October, November");
                break;
        }
    }

 

참고: https://wikidocs.net/123866 https://gsbang.tistory.com/entry/JAVA-enum-%EC%97%B4%EA%B1%B0%ED%98%95

 단 float/double형은 안 된다더라

 

강의에서 위의 switch문이랑 if문이랑 가독성에 크게 차이가 없다고 하셨는데 그 보완법으로 다음의 새로운 switch문이 도입되었다더라 그치만 엄-청 많이 사용하고 있진 않다고 덧붙이셨다. 그래도 알아두면 좋겠지

int coupon = switch (grade) {
    case 1 -> 1000;
    case 2 -> 2000;
    case 3 -> 3000;
    default -> 500;
};

 

이렇게 switch문을 쓰면 결과값이 바로 대입된다. 처음에 보고 되게 신기했는데 -> 입력하기 쉽지 않았다.

삼항연산자 = 조건 연산자
단순히 참과 거짓에 따라 특정 값을 구할 때 사용

 

switch (변수) {               
         case " ":
                   코드;
                   break;
         default:
                   코드;
}

 

형태만 눈에 익히면 괜찮을 거 같다고 쓰려다 아까 구글링 해볼 때도 다양한 형태로 막 엮어 쓸 수 있는 걸 봐서 강의 보면서만큼은 기본기 탄탄하게 잡는단 생각으로 열심히 해 봐야겠다. 

 

--끝--