-
과제8. 연소득 과세금액 계산 프로그램백엔드 스쿨/Java 2023. 11. 13. 21:13
목적
Scanner의 입력함수와 조건문 및 반복문 과 배열, 함수를 통한 과세 로직 작성
연소득 금액 입력
주어진 종합소득세율표를 통한 조건 생성
종합소득세율표 콘솔 예시 코드 구상
1. 세율표에 따라 입력한 연 소득의 세금을 따로 계산하여 출력해야함.
입력한 연 소득을 단계별로 나눈 금액을 저장하고 계산한 금액을 더하여 저장할 변수가 각각 필요함.
8개 구간으로 나뉘어져 있으며 각 구간마다 필요한 변수의 양이 다름.
배열을 통해 구간별 금액과 세율, 공제금액을 저장.
2. 반복문을 통해 각 구간별 세금을 계산하여 출력.
연 소득이 과세 표준 금액의 어디에 해당하는지 가장 아래단계부터 비교
단계가 정해지면 그 이전 구간의 경우는 계산할 필요 없이 고정된 값이므로 해당 값을 반복하여 출력.
3. int의 최대값이 약 21억 정도이므로 소득의 자료형은 long 타입을 필요해 보임.
import java.util.Scanner; public class JavaStudy08{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); long incomeRange[] = {0L,12000000L,46000000L,88000000L,150000000L,300000000L,500000000L,1000000000L}; // 과세 표준을 저장한 배열 long taxSection[] = new long[8]; //구간별 과세 대상 금액을 저장할 배열 int taxPercent[] = {6,15,24,35,38,40,42,45}; //세율을 저장한 배열 long deduction[] = {0L,1080000L,5220000L,14900000L,19400000L,25400000L,35400000L,65400000L}; //누진공제를 저장한 배열 System.out.println("[과세금액 계산 프로그램]"); System.out.print("연소득을 입력해 주세요."); long yearIncome = sc.nextLong(); // 숫자 단위가 크므로 long 자료형으로 숫자를 입력받는다. sc.nextLine(); int check = 0; //구간 확인용 변수. for(int i=7;i>=0;i--) { if(yearIncome>incomeRange[i]) { if(check==0) { taxSection[i] = yearIncome - incomeRange[i] ; // 연소득이 해당 과세표준보다 높을경우 과세대상 금액 배열애 금액 차를 입력한다. check = i; //구간을 찾았으므로 변수값을 i값으로 변경 } else taxSection[i] = incomeRange[i+1] - incomeRange[i]; // check값이 false가 아닐 경우 이미 이전반복에서 구간을 찾았으므로 해당 구간의 과세금액은 다음 구간과의 차이가 된다. } else taxSection[i] = 0L; // 연소득이 해당 과세표준보다 낮거나 같은경우 해당 구간의 과세금액은 0원이 된다. } //과세 대상 금액 계산을 완료. long totalTax = 0L; // 구간별 세금 총합을 저장하기위한 변수 for(int i=0;i<8;i++) { if(taxSection[i]==0) break; // 만약 해당 구간의 과세 대상 금액이 0원일 경우 이후의 구간도 모두 0원이므로 출력을 중단하고 반복문을 빠져나간다. System.out.printf("%12d * %3d%% = %12d\n",taxSection[i],taxPercent[i],taxSection[i]/100*taxPercent[i]); totalTax += taxSection[i]/100*taxPercent[i]; // 계산한 세금을 저장 } System.out.println(); System.out.printf("[세율에 의한 세금]: %12d\n",totalTax); // 총 세금을 출력 System.out.printf("[누진공제 계산에 의한 세금]:%12d\n",(yearIncome/100*taxPercent[check])-deduction[check]); // 누진 공제방식으로 세금을 계산하여 출력. } }
'백엔드 스쿨 > Java' 카테고리의 다른 글
자료구조 Queue (0) 2023.11.18 자료 구조 - Stack (0) 2023.11.16 과제7. 로또 당첨 프로그램 (0) 2023.11.13 과제6. 가상 선거 및 당선 시뮬레이션 프로그램 (0) 2023.11.12 과제5. 달력 출력 프로그램 (0) 2023.11.12