[연습문제-Java] 캐시백 합계 출력하기

이용준·2022년 11월 1일
0

연습문제

목록 보기
1/1

[문제] 고객의 지불 금액, 적립 캐시백, 누적 캐시백을 출력하시오

  • 조건
    1. 지불 금액 입력받음
      2-1. 적립금은 1회 최대 1만원을 넘길 수 없음
      2-2. (1만원 미만시)결제 금액의 15% 적립
      - 캐시백 적립금액 합계 출력
      - 적립금은 10원 단위
    2. 지불 금액 출력 3회 반복

1.지불 금액 입력받기

import java.util Scanner;
(...)
Scanner sr = new Scanner(System.in);
int payment = sc.nextInt();

1) 고객의 지불 금액 입력받기 위한 패키지(java.util.Scanner)를 불러온다.
2) Scanner 메소드 호출한다.
3) payment 변수에 값을 입력 받는다.

  • 변수는 int형이므로 nextInt()를, 자료형에 따라 next~()로 변경한다.

2-1.적립금 1회 최대 1만원 넘길 수 없음

int cashBack  = 0;
int cashBackSum  = 0;
if (payment * 0.15 > 10000){
  cashBack += 10000;
  cashBackSum = total.add(10000);
  System.out.printf("결제금액은 %d원 이며, 캐시백은 %s원, 캐시백 합계는 %s원 입니다.", payment, cashBack, cashBackSum);
  }

1) 수치형 변수 생성(cashBack-적립 캐시백 / cashBackSum-누적 캐시백)
2) 지불 금액의 15% 금액이 10,000원을 넘길 시 적립 캐시백은 10,000원이 된다.
3) 누적 캐시백에 10,000원 추가

2-2. 포인트 1만원 미만시 금액의 15% 적립

class Total { // 누적 캐쉬백
    static int totalValue=0;
    static int add(int cashBack){  // 캐시백 누적 메소드
        totalValue += cashBack;
        return totalValue;
    }
}

else {  // 캐쉬백 1만원 미만인 경우 ( 캐쉬백 * 15%(10원 단위) 적립)
  cashBack = (int) ((payment * (0.15)) - (payment * (0.15) % 10)); // 적립금 (전체 금액 중 15% 금액-단위 : 10원)
  cashBackSum = total.add(cashBack);
  System.out.printf("결제금액은 %s원이며, 캐시백은 %s원, 캐시백 합계는 %s원 입니다.", payment, cashBack, cashBackSum);
  }

1) 누적 캐시백 출력 클래스 생성(계산기 참고)
2) 지불 금액에서 15% 계산
3) 15% 포인트를 10원 단위로 계산
4) 지불 금액, 적립 캐쉬백, 누적 캐쉬백 출력

3. 3회 반복

  • 전체 코드를 for문을 통해 3회 반복한다.
    (while문을 사용하면 반복횟수 지정 없어도 가능)
    for(int i=0;i<3;i++){
      (1,2 코드 작성)
    }

4.전체 코드

import java.util.Scanner;

class Total { // 누적 캐쉬백
    static int totalValue=0;
    static int add(int cashBack){  // 캐시백 누적 메소드
        totalValue += cashBack;
        return totalValue;
    }
}

public class cashBack3 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int cashBackSum = 0;  // 변수,캐시백 누적 합계
        Total total = new Total();

        for (int i = 0; i < 3; i++) {  // 3회 반복
            System.out.println("");
            System.out.println("지불 금액을 입력하시오 : ");
            int payment = sc.nextInt(); // 변수, 지불금액
            int cashBack = 0;  // 변수, 캐쉬백

            if (payment * 0.15 > 10000) {  // 캐쉬백 1만원 이상일 경우 (캐쉬백 최대 1만원 적립)
                cashBack += 10000;
                cashBackSum = total.add(10000);
                System.out.printf("결제금액은 %d원 이며, 캐시백은 %s원, 캐시백 합계는 %s원 입니다.", payment, cashBack, cashBackSum);

            } else {  // 캐쉬백 1만원 미만인 경우 ( 캐쉬백 * 15%(10원 단위) 적립)
                cashBack = (int) ((payment * (0.15)) - (payment * (0.15) % 10)); // 적립금 (전체 금액 중 15% 금액-단위 : 10원)
                cashBackSum = total.add(cashBack);

                System.out.printf("결제금액은 %s원이며, 캐시백은 %s원, 캐시백 합계는 %s원 입니다.", payment, cashBack, cashBackSum);
            }
        }
    }
}
profile
뚝딱뚝딱

0개의 댓글