문제
/* 영업사원의 월급을 계산하는 프로그램을 작성하려고 합니다.
* 월 급여액과 월 매출액을 입력 받아 급여를 산정합니다.
* 영업사원은 매출액 대비 보너스율에 명시된 보너스를 급여 외에 추가로 지급받습니다.
*
* 단, 보너스율은 입력 받은 월 매출액에 비례하며,
* 계산된 보너스 금액을 월 급여액에 더하여 총 급여를 계산한다.
*
* 보너스율을 적용하여 출력 예시처럼 출력되도록 프로그램을 만들어보세요
*
* -- 총 급여 계산식 --
* 총 급여 = 월 급여 + (매출액 * 보너스율)
*
* -- 매출액 대비 보너스율 --
* 매출액 보너스율
* 5천만원 이상 5%
* 3천만원 이상 3%
* 1천만원 이상 1%
* 1천만원 미만 0%
*
* -- 입력 예시 --
* 월 급여 입력 : 3000000
* 매출액 입력 : 20000000
*
* -- 출력 예시 --
* ======================
* 매출액 : 20000000
* 보너스율 : 1%
* 월 급여 : 3000000
* 보너스 금액 : 200000
* ======================
* 총 급여 : 3200000
* */
작성한 코드)
Scanner sc = new Scanner(System.in); System.out.print("월 급여 입력: "); int salary =sc.nextInt(); System.out.print("매출액 입력: "); int sales =sc.nextInt(); int bounsPercent = 0 ; //매출액 별 보너스율 구하기 if (sales >=50000000) { bounsPercent += 5 ; }else if (sales >=30000000) { bounsPercent += 3 ; }else if (sales >= 10000000) { bounsPercent += 1; }else if (sales < 10000000) { bounsPercent += 0; } //총 급여 = 월급 + (매출액 * (보너스퍼센트/100)) int totalSalary = salary +(sales * (bounsPercent)/100); //보너스 금액 = 총급여 - 월급 int bounsWage = totalSalary - salary; System.out.println("=================================="); System.out.println("매출액 : " + sales); System.out.println("보너스율 : " + bounsPercent + "%"); System.out.println("월 급여 :" + salary); System.out.println("보너스 금액:" +bounsWage ); System.out.println("=================================="); System.out.println("총 급여"+ totalSalary ); } }
출력 동일하게 나옴.
문제 길이나 낯선 퍼센트 계산에 주춤했지만 오히려 쉽게 풀 수 있었음.
보너스%를 double형에 실수로 저장한뒤 계산을 할때 int형 강제 형변환을 하느냐
정수 int 형에 보너스율이 5%면 5를 입력한 뒤, 계산할 때 매출액*(보너스퍼센트/100 즉 0.01퍼센트)로 하느냐
였는데 2번째로 함. 이유는 모르겠고, 우선 출력이 되어서 선택함. 강제형변환이 없게 해보고싶었나.
그런데 팀원분 중 항상 너무너무 깔끔하고 잘하시는 분 코드를 보니
이렇게 식이 복잡할때, 변수가 많을 때 사용할 변수를 한번에 위에 선언한뒤, 아래에서 식을 대입하는 것도 좋을 것 같다.
int bounsPercent = 0 ; // 보너스 퍼센트 int totalSalary = 0; // 총 급여 int bonusWage = 0; // 매출액에 비례한 보너스율
totalSalary = salary +(sales * (bounsPercent)/100); bounsWage = totalSalary - salary;
오늘은 이만하고 자고 내일 for 반복문 화이팅해서 들어보자 !!

'백엔드 과정 > Java' 카테고리의 다른 글
[Java] day7. 반복문 while문 (0) | 2021.12.26 |
---|---|
[Java] day7. 반복문 for문 (0) | 2021.12.25 |
Java 문제풀이2-1 . if문 (과목별 합격 / 불합격 사유 출력하기) (0) | 2021.12.23 |
[Java] day6. if문/ if-else문/ if-else-if문/ switch 조건문 (0) | 2021.12.23 |
[Java] day6. Scanner() (0) | 2021.12.23 |