문제 -전기 사용량을 입력받아 이번달 요금 출력하기
* 주의 : 아직 초보자의 포스팅이라 코드가 별로일 수 있음..
더 좋은 코드가 있다면 제발 알려주시길 바랍니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
import java.util.Scanner;
public class 문제5_3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("전기사용량을 입력하세요(kw) : ");
int amount = scanner.nextInt(); //전기사용량 입력
int basic; //기본요금
double price; //kw당 요금 * amount
double tax; //세금
double total; // 총 요금
scanner.close();
}
}
|
cs |
먼저 이렇게 전기사용량을 입력받았구요
변수들을 선언해주었습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
import java.util.Scanner;
public class 문제5_3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("전기사용량을 입력하세요(kw) : ");
int amount = scanner.nextInt(); //전기사용량 입력
int basic; //기본요금
double price; //kw당 요금 * amount
double tax; //세금
double total; // 총 요금
//price구하기, basic 구하기
if (amount <= 100) {
price = (52.0 * amount);
basic = 370;
} else if ( amount > 100 && amount <= 200) {
price = (52.0 * 100) + (88.5 * (amount-100));
basic = 660;
} else if (amount > 200 && amount <= 300) {
price = (52.0 * 100) + (88.5 * 100) + (127.8 * (amount-200));
basic = 1130;
}else if (amount > 300 && amount <= 400) {
price = (52.0 * 100) + (88.5 * 100) + (127.8 * 100) + (184.3 * (amount - 300));
basic = 2710;
}else if (amount > 400 && amount <= 500){
price = (52.0 * 100) + (88.5 * 100) + (127.8 * 100) + (184.3 * 100)+ (274.3 *(amount - 400));
basic = 5130;
}else {
price = (52.0 * 100) + (88.5 * 100) + (127.8 * 100) + (184.3 * 100)+ (274.3 * 100) + (494.0 *(amount - 500));
basic = 9330;
}
tax = (basic + price) * 0.09; // 세금은 기본요금 + kw당 요금의 9 퍼센트이다.
total = (int)( basic + price + tax); //total은 double형이니까 정수형으로 바꿔준다.
System.out.println("전기사용량을 입력하세요(kw) : " + amount);
System.out.println("이번달 요금은 " + (int)total + "입니다.");
scanner.close();
}
}
|
cs |
1) if문사용
basic은 기본요금
price는 kw당 요금입니다.
그래서 보시면
amount를 조건문으로 나누었습니다.
amount가 100이 될때까지 기본요금은 370 입니다
그래서 basic이 370이되었고
kw당 요금은 간단하게 52.0* amount입니다.
두번째 조건 보시면
amount가 그러니까 전기 사용량이 100초과 200이하일때
기본요금은 660이고
kw당 요금은
100까지는 52*100 이고
101부터는 88.5 * (amount -100) 이겠죠
만약에 120을 썼다 그러면
100까지는 52원을 청구하고
20원은 88.5원씩 20kw를 청구하겠지요.
이런식으로 조건들을 쭉 써줍니다.
2)
그리고 tax는 세금인데 퍼센트입니다.
요금나온 것을 다 더하고 9퍼센트를 때려주고요
total은 세금과 기본사용료, kw당 요금 다 더한 값입니다.
total은 double형으로 선언했으니 int형으로 형변환을 해줍니다.
원하는 대로 나오고 있습니다.
두번째로 switch문을 사용해보겠습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
import java.util.Scanner;
public class 문제5_3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("전기사용량을 입력하세요(kw) : ");
int amount = scanner.nextInt(); //전기사용량 입력
int basic; //기본요금
double price; //kw당 요금 * amount
double tax; //세금
double total; // 총 요금
//switch문 사용
if (amount <= 100) {
basic = 1;
} else if ( amount > 100 && amount <= 200) {
basic = 2;
} else if (amount > 200 && amount <= 300) {
basic = 3;
}else if (amount > 300 && amount <= 400) {
basic = 4;
}else if (amount > 400 && amount <= 500){
basic = 5;
}else {
basic = 6;
}
switch (basic) {
//case를 줄이기 위해 위에 if문을 만들었다.
//basic으로 case를 나눴다.
case 1:
price = (52.0 * amount);
basic = 370;
break;
case 2:
price = (52.0 * 100) + (88.5 * (amount-100));
basic = 660;
break;
case 3:
price = (52.0 * 100) + (88.5 * 100) + (127.8 * (amount-200));
basic = 1130;
break;
case 4:
price = (52.0 * 100) + (88.5 * 100) + (127.8 * 100) + (184.3 * (amount - 300));
basic = 2710;
break;
case 5:
price = (52.0 * 100) + (88.5 * 100) + (127.8 * 100) + (184.3 * 100)+ (274.3 *(amount - 400));
basic = 5130;
break;
case 6:
price = (52.0 * 100) + (88.5 * 100) + (127.8 * 100) + (184.3 * 100)+ (274.3 * 100) + (494.0 *(amount - 500));
basic = 9330;
break;
}
tax = (basic + price) * 0.09; // 세금은 기본요금 + kw당 요금의 9 퍼센트이다. total = (int)( basic + price + tax); //total은 double형이니까 정수형으로 바꿔준다. System.out.println("전기사용량을 입력하세요(kw) : " + amount);
System.out.println("이번달 요금은 " + (int)total + "입니다."); scanner.close();
}
}
|
cs |
1) switch문을 사용하여 case를 간단하게 나눠주기 위해
basic으로 case를 나누겠습니다.
기본요금 case가 1일떄 2일때 이런식으로 나눕니다.
2) switch의 조건을 basic으로 두고
case1 일때
amount는 100이하라는 뜻이고
price와 basic을 위의 if문과 같이 만들어주었습니다.
다음 코드들은 위와 같습니다.
'JAVA > java 문제' 카테고리의 다른 글
[자바JAVA] 반복문 - 스피드를 계속 증속, 감속 한다. while문 사용, if문 (0) | 2020.10.03 |
---|---|
[자바JAVA] 반복문- 배수의 값만 출력하기 for문 continue문 if문 (0) | 2020.10.03 |
[자바JAVA] 조건문 - 주민등록번호를 입력받아 여자, 남자 구분, 년도 출생 구분하기 if문 , switch문 , charAt(), String타입을 char타입으로 (0) | 2020.10.02 |
[자바JAVA] 조건문 - 점수입력하고 학점 출력하기 if문 switch문 (0) | 2020.10.01 |
[자바JAVA] 조건문 - 세과목 점수를 입력받아 평균과 학점을 출력하기, if문 (0) | 2020.10.01 |