3주 만에 블로그를 쓴다
3주 동안은 학원 Java수업이 아닌 Step으로 컴퓨터 공학 관련 수업을 온라인으로 수강하였다.
3주가 지나고, 수업이 시작됨과 동시에 역시나.. 코드 만들기 숙제는 여전했다
오늘은 자세한 숙제설명 없이 딱 사진 한 장만 주어지고,
사진에 맞게 코드를 작성하라고 하셨다 (ㄷㄷ..;;)
(문제의 그 사진)
사진을 보았을 때, 가장 먼저 코드를 작성해야 하는 것은 car 클래스라고 생각했다.
그리고 4가지의 경우의 수를 나눴는데,
1. 언제부터 차량5부제가 시행하였는가?
2. 공휴일에는 모든 차량 출입이 허가된다.
3. "장애인", "유아동승", "경차"는 언제든지 출입이 허가된다.
4. 요일별로 차량 끝번호에 따라 출입이 허가/통제된다.
맨 처음에는 Car라는 클래스를 만들었고,
기본 생성자로 랜덤으로 차량 끝번호를 생성하고, 랜덤으로 차의 타입을 정해주었다
finalDecison 함수는 말 그대로 모든 걸 다 체크해주는 함수이다
if 가정문부터 보자면,
맨 처음으로 걸러줘야 하는 것을 시행 날짜로 지정하였고,
시행 날짜는 enforcement로 시행날짜 (2018,9,1) 보다 하루 전인 8.31로 지정하였다
(isAfter 기능을 쓰기 위해서)
검색한 날짜가 시행한 날짜보다 뒤에 있으면, 즉 차량 5부제가 시행되었으면
다음으로 걸러줄 제약은 공휴일로 잡았다.
holiday라는 함수를 따로 만들어서, 검색한 날짜와 비교하여 true를 반환하면 공휴일이기 때문에 출입이 가능하다고 코드를 짰다.
(여기서 day는 검색한 날짜 searchDay가 날짜 형식이기 때문에 String으로 변환시켜준 변수이다.)
공휴일을 제외한 나머지 날짜에서 3번째 조건, 차량 유형에 따라 출입허가가 나뉘기 때문에,
가정문을 넣어서 차량의 타입이 "장애인", "유아동승", "경차"가 아닌 경우는
4번째 조건, numDesicion 함수를 통해 각 요일에 지정된 차량 끝번호는 출입이 통제되는 것으로 구성하였다
holiday, numDesicion을 살펴보면
boolean 값으로 holi를 false로 지정해놓고,
검색한 날짜 day가 공휴일일 경우에는 true로 반환시켜주는 반복문을 형성하였다
String 배열로 공휴일들을 holiday에 넣어주었고,
반복문을 통해 검색한 날짜가 공휴일을 포함하고 있는 경우에만 true
numDesicion은 검색한 날짜와 차의 끝번호를 매개변수로 받는데
여기서 day는 앞에서 String으로 변환한 검색 날짜가 아닌,
finalDesicion에서 인자 값으로 넣는 dayNum을 뜻하고,
dayNum은 검색한 날짜의 요일별 value값을 반환시켜주는 변수이다.
월요일부터 일요일까지 value는 1부터 7로 구성되어 있고,
day == 1 즉 월요일 때부터
차량 5부제에 지정된 carNum(차량 끝번호)이 들어왔을 때는, 출입제한을 걸고
나머지는 출입이 가능하다고 구성하였다.
마지막 메인에서는
검색할 날짜만 사용자가 지정할 수 있게 하고,
getDayOfWeek로 검색한 날짜의 요일을 프린트하고
finalDesicion 함수로 출입이 가능한지 출력하게 구성하였다.
오늘 날짜로 검색하고, 랜덤으로 차를 받아와서 검사하는 console 창
'TIL > Java' 카테고리의 다른 글
Java gui button puzzle (0) | 2021.08.04 |
---|---|
Java 행사 이벤트 출력하기 (0) | 2021.08.04 |
Java 주민등록번호 유효성 체크 (0) | 2021.08.04 |
Java 핸드폰번호 유효성 체크 (0) | 2021.08.03 |
Java 학교 (학생들의 성적표 만들기) (0) | 2021.08.03 |