결제 금액 캐시백 계산 프로그램

암호

/*
    작성자 : 김종식
    조건 :
        - 주어진 캐시백 적립 조건에 맞게 캐시백 계산
        - 결제 금액을 입력하면, 이에 대한 캐시백 계산 후 결과 출력
        (캐시백 계산 조건)
        - 결제 금액의 10%를 적립한다.

- 캐시백포인트 단위는 백원단위이다.

- 한건의 캐시백 포인트는 최대 300원을 넘을 수 없다.

- (개인 추가) 100원 미만의 캐시백 금액은 0원으로 처리. - (개인 추가) 문자열에 대한 exception 처리 및 음수 입력방지 처리. - (개인 추가) while문으로 무한 반복이 되게 처리. */ import java.util.InputMismatchException; import java.util.Scanner; public class Main { public static void main(String() args) { Scanner scan = new Scanner(System.in); int num = 0; while (true){ try{ System.out.println(); System.out.println("(캐시백 계산)"); System.out.println("종료는 0번을 입력해주세요."); System.out.print("결제 금액을 입력해 주세요.(금액) : "); num = scan.nextInt(); if (num == 0 ){ System.out.println("프로그램이 종료되었습니다.

"); break; } else if (num < 0) { continue; } int cashPoint = (int) ((num * 0.1) / 100) * 100; if (cashPoint > 300) { cashPoint = 300; } else if (cashPoint < 100) { cashPoint = 0; } System.out.printf("결제 금액은 %d원이고, 캐시백은 %d원 입니다.

", num, cashPoint); }catch (InputMismatchException e){ System.out.println("숫자만을 입력해주시기 바랍니다.

"); scan.nextLine(); } } } }

콘솔





제 생각에는

  • 사용 편의성을 위해 무한 리플레이 및 엔딩 시스템을 추가했습니다.

    금액 입력창에 0을 입력하면 종료됩니다.

  • 문자열이나 음수가 입력되면 처리되는 로직을 만들었습니다.

  • try-catch에서 InputMismatchException이 발생했습니다.

  • catch 문에서 scan.nextLine()을 사용하는 이유는 println이 출력되고 num 값을 자동으로 설정하는 스캐너가 입력되면 무한 반복이 발생하기 때문이다.