문제1) 티모가 버스에 승차한다.
티모의 나이가 1~8세라면 무료
9~19세 라면 900원
20~64세 라면 1500원
65세 이상이라면 무료다.
티모의 나이가 랜덤일때 얼마를 지불해야하는지 출력하세요.
ex1) (티모가 20세) 1500원을 지불해야합니다.
ex2) (티모가 7세) 0원을 지불해야합니다
주의) 경계값들을 바꿀 수 있어야 한다.
<처음 짰던 코드>
package practice;
public class Practice {
public static void main(String[] args) {
int age=8;
if(age>=1||age<=8) {
System.out.println("무료입니다");
}
else if(age>=9||age<=19) {
System.out.println("900을 지불해야 합니다");
}
else if(age>=20||age<=64) {
System.out.println("1500원을 지불해야 합니다");
}
else {
System.out.println("무료입니다");
}
}
}
<바뀐코드>
1. 유효성 검사를 해야 함
2. 경계값이 바뀐다는 것을 유의해야 함.
public class Pratice {
public static void main(String[] args) {
final int CHECK01=1;
final int CHECK02=9;
final int CHECK03=20;
final int CHECK04=65;
final int CHECK05=120;
int age=8;
if(age<CHECK01 || CHECK05<age) { // 유효성 검사
System.out.println("티모의 나이가 올바른지 확인해주세요.")
}
else {
int money=0;
if(CHECK02<=age && age<CHECK03) {
money=900;
}
else if(CHECK03<=age && age<CHECK04) {
money=1500;
}
System.out.println(money+"원을 지불해야합니다.");
}
}
}
문제2) a,b,c 라는 랜덤한 정수가 3개 존재한다.
이중에서 가장 큰 정수의 값을 출력해주세요.(2가지 방법)
<첫번째 방법>
public class Practice {
public static void main(String[] args) {
int a=3;
int b=4;
int c=5;
if(a>b && a>c) { //만약 a가 b,c보다 크면
System.out.println(a); //a를 출력해주세요
}
else if(b>a && b>c) { //b가 a,c보다 크면
System.out.println(b); //b를 출력해주세요
}
else {
System.out.println(c); //그게아니면 c
}
}
<두번째 방법> - 각각비교
public class Test02 {
public static void main(String[] args) {
int a=3;
int b=4;
int c=5;
if(a>b) { //a가 b보다 크다면
// 가장 큰 정수가 될 수 있는 것 : a,c
if(a>c) { //a와 c를 비교
System.out.println(a);
}
else {
System.out.println(c);
}
}
else {
// 가장 큰 정수가 될 수 있는 것 : b,c
if(b>c) {
System.out.println(b);
}
else {
System.out.println(c);
}
}
}
int a=3;
int b=4;
int c=5;
int max= a>b? a>c? a:c : b>c?b:c;
System.out.println(max);
문제3) 사과는 1300원이다. 사과를 랜덤하게 구매한다.
사과는 한명당 최대 3개까지 구매할수있다.
손님은 50000원으로 사과를 구매하려고 시도한다.
이때 손님이 지불해야할 사과의 금액과 거스름돈을 출력하세요.
<처음코딩>
public class Practice {
public static void main(String[] args) {
int money=5000;
int cnt=3; //손님이 사갈 수 있는 사과의 수
final int MAX=3;//최대 3개까지(고정)
int price=1300; //사과는 1300원
//지불금액
int total=price*cnt;
money=-total;//money=money-total;
if(cnt>MAX) { //유효성 검사
System.out.println("사과는 한명당 최대 3개까지 구매할수있습니다!");
}
else {
System.out.println("지불할 금액 : "+total);
System.out.println("거스름돈 : "+money);
}
}
}
<수정코딩>
public class Practice {
public static void main(String[] args) {
int price=1300; // 사과의 가격
int cnt=3; // 사과 구매 갯수 (최대 3개까지)
final int MAX=3;
if(cnt>MAX) {
System.out.println("사과는 한명당 최대 3개까지 구매할수있습니다!");
return;
}
int money=50000; // 손님의 돈
int total=price*cnt; // 지불금액
money -= total; // 거스름돈
System.out.println("지불할 금액 : "+total);
System.out.println("거스름돈 : "+money);
}
}
유효성 검사만 하고 break로 프로그램을 종료시키고,
나머지 문제를 해결.
'JAVA > 코드' 카테고리의 다른 글
| 강의 3일차 문제풀기- 반복문 (0) | 2025.01.30 |
|---|---|
| 강의 2일차 문제풀기 - 반복문 (0) | 2025.01.30 |
| 과제 2번 - Thread 와 동기화 (0) | 2025.01.22 |
| 과제 1번 - 입출력(IO)을 이용한 업다운 게임 (0) | 2025.01.21 |
| 컬렉션 프레임워크 문제풀기 (0) | 2025.01.21 |