기초 다지기 124:선택제어문-형성평가5
*완전!!!! 기초부터 혼자 공부하면서 기록하기 위해 쓰는 글입니다. 부족한 부분이 많습니다. 혹시 가르쳐주실 부분이 있으시면 댓글 언제든지 환영합니다 :D
참고로, 이클립스를 사용했습니다!
문제:
1~12사이의 정수를 입력받아 평년의 경우 입력받은 월을 입력받아 평년의 경우 해당 월의 날수를 출력하는 프로그램을 작성하시오.
*HINT
평년의 경우 1월부터 12월까지 일수는 각각 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31일이다.
평년의 경우 입력받은 월을 입력받아 평년의 경우 해당 월의 날수를 출력하는 프로그램??
처음에 문제 보고 뭔 소린가 했는데...
그냥 몇월인지를 입력하면 해당 월이 몇일까지인지 출력하는 프로그램을 만들라는 말 같아요 ㅋㅋㅋㅋ
일단 데이터값을 입력받기 위해서는
import java.util.Scanner; ☞ Scanner를 import해주고,
Scanner sc=new Scanner(System.in); ☞ Scanner 객체를 생성해줘야 합니다.
int i=sc.nextInt();
☞ 몇 월인지를 입력받기 위해서 정수형 변수 i를 만들어줬습니다.
정수형은 int형으로 만들어줘야 하기 때문에 int를 붙여서 만들어주시면 됩니다! sc의 메소드에도 같은 변수형으로 붙여주면 되구요!
switch (i){
☞ switch문은 다양한 조건이 있을 때 if문보다 훨씬 간결하게 표현해낼 수 있다는 장점이 있습니다!
한 값을 가지고 여러 조건을 판단해야 할 경우에는 switch문이 훨씬 깔끔하고 쓰기 좋답니다!
이렇게 일단 switch() 괄호 안에 판단해야 할 값인 i를 집어넣어줍니다.
case 1:
☞ 우리가 입력해준 i 값이 "1"일 경우를 뜻합니다. if문 안에 있는 (i==1)와 똑같다고 보시면 됩니다
대신 여기는 괄호가 없고 뒤에 : 을 넣어준다는 점!
System.out.print("31");
break;
☞ i 값이 "1"이라는 조건을 만족한다면 print문을 사용해서 "31"라는 문장을 출력해줍니다.
1월은 31일까지 있다는 소리입니다. HINT문에 일수가 다 나와있으니 그대로 다 출력해주시면 됩니다.
break문은 한 조건이 끝날 때마다 넣어주셔야 합니다. 안 그러면 아래 조건들까지 모두 실행되어 버리는 불상사가 일어납니당..
case 2:
System.out.print("28");
break;
case 3:
System.out.print("31");
break;
case 4:
System.out.print("30");
break;
case 5:
System.out.print("31");
break;
case 6:
System.out.print("30");
break;
case 7:
System.out.print("31");
break;
case 8:
System.out.print("31");
break;
case 9:
System.out.print("30");
break;
case 10:
System.out.print("31");
break;
case 11:
System.out.print("30");
break;
case 12:
System.out.print("31");
break;
☞ "1월부터 12월까지 일수는 각각 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31일이다."
요 힌트 문장을 참고해서 2월부터 12월까지 모든 일수를 1월과 동일한 방식으로 출력시켜줍니다.
break문도 잊지 말고 조건이 끝날 때마다 꼭 써주셔야 합니다.
몇 월을 입력해볼까요?
☞ "2"를 입력했더니 "28"이 출력됩니다.
2월일 경우 총 일수가 28일이기 때문에 28이 출력되는 건 올바른 결과입니다.
다른 월도 다양하게 넣어보면서 제대로 작동되는지 테스트를 해보세요
혹시 1~12가 아닌 다른 값을 넣었을 때 ERROR를 출력하고 싶다면 맨 밑에 default문을 추가하시면 됩니다.