기초 다지기 535:선택제어문-자가진단8
*완전!!!! 기초부터 혼자 공부하면서 기록하기 위해 쓰는 글입니다. 부족한 부분이 많습니다. 혹시 가르쳐주실 부분이 있으시면 댓글 언제든지 환영합니다 :D
참고로, 이클립스를 사용했습니다!
문제:
4.5 이하의 평점을 입력받아 그 값에 따라 다음과 같이 출력하는 프로그램을 작성하시오.
(C, C++, Java는 switch ~ case문 사용) (Python은 if ~ else사용)
단 입력는 0이상 4.5 이하이다.
4.0 이상 : "scholarship"
2.0 미만 : "retake"
>> 실수를 정수형(int)으로 변환하여 분기한다. (예 - switch( (int)score ))
일단 데이터값을 입력받기 위해서는
import java.util.Scanner; ☞ Scanner를 import해주고,
Scanner sc=new Scanner(System.in); ☞ Scanner 객체를 생성해줘야 합니다.
float score=sc.nextFloat();
☞ 그 후에는 학점을 입력받을 변수인 score을 생성해줍니다.
실수 타입인 변수는 float로 설정을 해주셔야 합니다! 변수가 실수라면 sc의 메소드에도 똑같이 float를 붙여주시는 거에요!
그러면 float 값을 입력받겠다는 뜻이 되는거죠. 입력이 0이상 4.5이하니까 소수점까지 입력받기 위해서..!
switch((int)score){
☞ 문제에서 switch ~ case문을 사용하라고 명시해뒀기 때문에 망설임 없이 switch를 써줬습니다.
switch문은 다양한 조건이 있을 때 if문보다 훨씬 간결하게 표현해낼 수 있다는 장점이 있습니다!
문제에서 실수형을 정수형으로 변환하여 분기하라고 친절하게 "switch((int)score)" 까지 써뒀네요
이 문장의 뜻은 실수형인 score변수를 int형, 즉 정수형으로 변환해서 switch문에 사용하겠다는 뜻입니다.
예를 들어 4.5라는 score값이 들어오게 되면 int형으로 변환되어서 4라는 값이 저장됩니다.
실수형이 정수형으로 변환될 때는 소수점 뒷자리는 상관없이 정수까지만 뚝 잘라서 변환이 됩니다. 반올림 그런거 업숴요~!
그렇다면 이제 그걸 이용해서 조건을 걸어줘야겠죠?
case 4:
☞ 우리가 입력해준 score 값을 int형으로 변환했을 때 4인 경우를 뜻합니다.
즉, 4.0부터 4.9 를 입력해주면 4로 변환되겠죠? 물론 이 문제에서는 4.5점이 만점이기 때문에 4.0부터 4.5가 해당됩니다.
if문과 다르게 switch문은 괄호가 없고 뒤에 : 을 넣어준다는 점!
System.out.print("scholarship");
break;
☞ score 정수 부분이 4라는 조건을 만족한다면 "scholarship"이라는 문장을 출력해줍니다.
print문은 괄호 안에 나오는 문장을 그대로 출력해주는 출력문입니다.
break문은 한 조건이 끝날 때마다 넣어주셔야 합니다. 안 그러면 아래 조건들까지 모두 실행되어 버리기 때문이죠!
탈출하는 문장이라고 생각하시면 됩니다 . 탈~출!
case 3:
System.out.print("next semester");
break;
case 2:
System.out.print("seasonal semester");
break;
☞ 밑에 score 정수부분이 3일 때, 2일 때도 똑같은 형식으로 작성해줍니다.
3일 때는 3.0~3.9인 score값이, 2일 때는 2.0부터 2.9인 score값이 조건을 만족시키겠죠?
default:
System.out.print("retake");
break;
☞ 위의 문장들이 else if 문 대신이라면 이 문장은 else문을 대신합니다.
위의 조건들 중 어느 곳에도 해당되지 않을 때 실행되는 문장인 거죠!
switch 문에서는 else문 대신 default문을 쓴답니다.
"retake" 뜻이 궁금해서 사전에 검색해봤는데 "다시 잡다"? 라고 나오네요.. 재수강이란 뜻인걸까용...?
이제 예제를 실행해보겠습니다!
☞ 3.5를 예시로 입력했더니 "next semester"이 출력됩니다
score값에 3.5가 들어가면 (int)score값은 뭐가 될까요?
.
.
.
정답은 3입니다!!!! 허헛.. 전 혼자서도 잘 놀아요...
이렇게 ()안에 다른 타입의 자료형을 써서 형변환을 해주는걸 casting이라고 한답니다
오늘도 하나 배워가네요! 머릿속에 꾹-꾹 저장!
그럼 다음 문제에서 뵐게요!