import java.util.Scanner;
public class KIMain2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("국어는 몇점?");
int Korean_score = sc.nextInt();
System.out.println("수학은 몇점?");
int Math_score = sc.nextInt();
System.out.println("영어는 몇점?");
int English_score = sc.nextInt();
int score = Korean_score + Math_score + English_score;
int avg = score / 3;
System.out.printf("국어는 %d점\n", Korean_score);
System.out.printf("수학은 %d점\n", Math_score);
System.out.printf("영어는 %d점\n", English_score);
System.out.printf("총합은 %d점\n", score);
System.out.printf("평균은 %.1f점\n", (double)avg);
}
}
오늘은 먼저 Scanner 연습을 위한 실습을 해보았습니다.
세가지 과목을 입력받아서 과목 점수의 총합을 구하고
평균을 구해서 출력하는 간단한 실습이었습니다.
여기서 추가로 배운 점은 명시적 형 변환 문법인데
자료형이 다른 데이터를 출력하려고 할 때
(다른 자료형) 변수이름을 입력하면
해당 자료형으로 출력할 수 있다는 기능입니다.
예를들어, 위에처럼
avg는 int 자료형이었는데
(double) 을 사용해서
실수로 출력할 수 있습니다.
국어는 몇점?
100
수학은 몇점?
90
영어는 몇점?
80
국어는 100점
수학은 90점
영어는 80점
총합은 270점
평균은 90.0점
△ 출력 내용
import java.util.Scanner;
public class KIMain3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("반지름은 몇cm?");
double radious = sc.nextDouble();
double radious_size = radious*radious*3.14;
System.out.println("가로는 몇cm?");
int width = sc.nextInt();
System.out.println("세로는 몇cm?");
int length = sc.nextInt();
int rectangular = width * length;
System.out.println("몇초?");
int second = sc.nextInt();
int time = second / 3600;
int minute = (second - (time * 3600))/60;
int final_second = (second - (time *3600)) - (minute * 60);
System.out.printf("원의 면적은 %.1f㎤\n", radious_size);
System.out.printf("직사각형의 면적은 %d㎝\n", rectangular);
System.out.printf("시간은 %d시간 %d분 %d초\n", time, minute, final_second);
}
}
다음 실습은
1.원의 반지름을 입력 받아서 원의 면적을 구하고
2. 가로 세로를 입력받아서 사각형의 면적을 구하고
3. 초를 입력받아서 시간 단위로 나누는 것
입니다.
먼저 초등학교 때의 기억을 떠올리며
원의 면적 = 반지름 * 반지름 * 3.14를 떠올렸고,
그대로 입력받은 반지름을 집어 넣어주면 됩니다.
하지만 자바에는 Math라는 도구가 존재합니다.
double radious_size = (Math.PI * Math.pow(radius, 2));
Math.PI를 이용해 파이를 대체할 수 있고,
Math.pow라는 함수를 사용해서 제곱을 할 수 있습니다.
사각형의 면적은 가로 * 세로이므로
입력받은 가로와 세로만 곱해주면 됩니다.
문제는 입력받은 초를 시간 단위로 나누는 것인데
먼저 입력받은 초를 3600으로 나누어 시간을 구해줍니다.
분을 구하려면 시간만큼의 분을 제외시켜야 하므로
입력받은 초에서 (시간 * 3600) 만큼을 뺀 값에
60을 나눠서 분을 구해줍니다.
초는 더하여 입력받은 시간과 분만큼을 제외한 초이기 떄문에
입력받은 초 - ((시간 * 3600) - (분 *60)) 을 해주어 구할 수 있습니다.
점심시간 전에 마지막 실습을 했는데
public class KIMain4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("자장면은 얼마?");
int jjm = sc.nextInt();
System.out.println("짬뽕은 얼마?");
int jbb = sc.nextInt();
System.out.println("탕수육은 얼마?");
int tsy = sc.nextInt();
System.out.println("양장피는 얼마?");
int yjp = sc.nextInt();
System.out.println("군만두는 얼마?");
int kmd = sc.nextInt();
System.out.println("크림새우는 얼마?");
int krsw= sc.nextInt();
System.out.println("=======================");
System.out.println("중국집에 오신 것을 환영합니다!");
System.out.println("=======================");
System.out.printf("┌ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ┐\n" );
System.out.printf("|짜장면 : " + "%d원 |\n", jjm);
System.out.printf("|짬뽕 : " + "%d원 |\n", jbb);
System.out.printf("|탕수육 : " + "%d원 |\n", tsy);
System.out.printf("|군만두 : " + "%d원 |\n" , kmd);
System.out.printf("|양장피 : " + "%d원 |\n", yjp);
System.out.printf("|크림새우 : " + "%d원 |\n", krsw);
System.out.printf("└ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ┘");
}
}
각 메뉴들의 가격을 입력받아서 메뉴판을 만드는 실습이었습니다.
=======================
중국집에 오신 것을 환영합니다!
=======================
┌ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ┐
|짜장면 : 5000원 |
|짬뽕 : 7000원 |
|탕수육 : 15000원 |
|군만두 : 7000원 |
|양장피 : 25000원 |
|크림새우 : 20000원 |
└ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ┘
나름 메뉴판같이 생겨서 만족하네요 : )
다음 학습진행 후 실습 리뷰로 돌아오겠습니다!
'Java > 실습' 카테고리의 다른 글
[Java] 홀 짝 게임 - 함수를 사용해서 만들기 (0) | 2024.11.25 |
---|---|
[Java] 함수 열고 닫기 (0) | 2024.11.25 |
[Java] 비만도 계산 프로그램 (0) | 2024.11.25 |
[Java] 두 숫자 중 큰 수를 출력하는 함수 (0) | 2024.11.25 |
[Java] 자바의 입력 처리와 bat 파일 실습: 변수에 넣고 출력하기 (0) | 2024.11.21 |