본문 바로가기
국비학원 전 강의 필사/JAVA 플레이그라운드

😊 #25 특정 달의 최대 일수 출력하기 해답 - <JAVA플레이그라운드>

by kkooHan 2022. 8. 22.

 

출처 : https://www.inflearn.com/course/java-codesquad/dashboard

 

[무료] 만들어 가면서 배우는 JAVA 플레이그라운드 - 인프런 | 강의

는 마스터즈코스 화이트레벨을 수강하기 위한 준비단계입니다. 대상은 코딩을 전혀 경험해보지 않았던 분들을 위한 과정입니다. 기존의 이론 위주로 학습 방식이 아니라 무엇인가를 만들어가

www.inflearn.com

 

 

 

 

 

 

필사 :

 

		Scanner scanner = new Scanner(System.in);

 

 

Ctrl + Shift + M -> import java.util.Scanner;

 

 

		System.out.println("달을 입력하세요");
		int month = scanner.nextInt();

 

 

		int[] maxDays = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

 

 

		System.out.printf("%d월은 %d일까지 있습니다.\n", args);

printf의 경우 자동 줄바꿈이 되지 않으므로 '\n'을 입력해준다.

 

 

		System.out.printf("%d월은 %d일까지 있습니다.\n", month, maxDays[month-1]);

args 자리에 출력될 숫자에 해당하는 변수를 입력해준다.

month -1 => 배열은 0부터 시작하므로.

 

 

scanner.close();

스캐너를 사용했으니 닫아준다.

불필요한 시점(-> scanner 마지막에 쓰이는 곳 이후)에서 클로즈를 해줘도 된다.

 

 

이게 방법 1이다.

의미있는 구현을 한 뒤에는 커밋을 하는 것이 좋다.

나중에 되돌릴 수도 있으므로.

 

 

 

 

		int[] maxDays = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

위 기능은 하나의 로직이다.

이런 것은 함수로 빼면 좋다.

함수는 공부를 해줘도 되고, 모르면 그냥 이런 게 있구나 참고.

 

 

	public int getMaxDaysOfMonth(int month) {

이 녀석을 main 바깥으로 빼기.

 

 

	private final int[] MaxDays = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; 

	public int getMaxDaysOfMonth(int month) {

 

 

	private final int[] MaxDays = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; 
	
	public int getMaxDaysOfMonth(int month) {
		return MaxDays[month - 1];
	}

이렇게 해주면 함수 짜기 끝.

중요한 것은 재사용 하려고, 코드를 깔끔하게 보려고

로직을 함수로 빼왔다는 것.

 

 

cal.getMaxDaysOfMonth(month)

-> 함수라고 부를 때도 있고 메소드라고 부를 때도 있다.

함수명을 maxDaysOfMonth에서 getMaxDaysOfMonth로 변경.

어떤 함수인지 알기 쉽게.

 

 

함수는 나중에 공부하세요~

아직 안배웠을 수도 있습니다.

 

 

이전에 적어둔 코드가 아까워서 남겨두고 싶은 경우

이런 식으로 함수로 저장한 뒤 빼두기.

 

 

쓰고싶을 때 이렇게 해서 쓰면 됨

 

 

다 됐으니까 다시 커밋.

 

 

 

 

방법 2. 배열을 안쓰고 if문 활용

		if (month == 1) {
			return 31;
		}	else if (month == 2) {
			return 28;
		}
		return 31;
	}

 

 

에러가 많을 때

가장 먼저 봐야할 것이 {}쌍이 맞는지 확인.

 

이렇게 1월부터 12월까지 해도 되지만

점수로 따지면 70점짜리.

 

 

 

 

방법 3. 스위치 케이스

 

		switch (month) {
		case 2:
			return 31;
		case 4:
			return 30;
		default :
			return 31;	}
		}

점수로 따지면 80점 짜리.

 

 

 

 

배열 방식이 좋다.

 

 

다 했으면 Ctrl + Shift + F 로 자동정렬.

자동정렬하고 커밋하는 것이 좋다.

내가 실수한 들여쓰기를 이클립스가 해준다.

 

 

 

 

느낀점 : 

 

함수명은 어떤 함수인지 설명이 되는 이름으로 정해주면 좋다.

 

 

기본 개념서로 공부하면서 이 강의를 봐야 하는구나.

 

 

파일 이름을 바꾸니까 이전 기록이 보기 힘들어졌다.

(파일 이름 정할 때 나중에 바꾸지 않도록 애초에 자바 약속에 맞게끔 파일 이름을 정하자.

 모르고 어겼다가 돌아가는 느낌...)

 

 

내가 한 것은 70점짜리..

배열과 if문을 이용해서 4년마다 2월은 29일이 나오게 해보자.

-> 드디어 성공!

 

 

댓글