烟尘最是抚人心 2022-11-01 10:33 采纳率: 100%
浏览 87
已结题

JAVA编写个税计算器(简易),代码繁杂能否优化

问题遇到的现象和发生背景 计算个人所得税。设某人月收入为x元,假设个人所得税征收方法如下:
  当x<=3500时,不需要交税;

  当3500<x≤5000时,应征税为(x-3500)* 3%;

  当5000<x≤8000时,应征税为(x-5000)* 10% + 1500 * 3%;

  当8000<x≤12500时,应征税为(x-8000)* 20% + 3000 * 10% + 1500 * 3%;

  当12500<x≤15000时,应征税为(x-12500)* 25% + 4500 * 20% + 3000 * 10% + 1500 * 3%;

  当15000<x时,应征税为(x-15000)*30% + 2500 * 25% + 4500 * 20% + 3000 * 10% + 1500 * 3%
用代码块功能插入代码,请勿粘贴截图
    import java.util.Scanner;    public class 个人所得税计算器 {
        
        public static void main(String[] args) {
            float shui =0;
            Scanner input =new Scanner(System.in);
            System.out.println("请输入你本月的工资: ");
            int gz= input.nextInt();
            if(gz<=3500)
            {shui=0;System.out.println("你的收入未达到收税标准,不用交税!");}
            else if(3500<gz&&gz<=5000){shui=(float)( (gz-3500)*0.03);}
            else if(gz<=8000){shui= (float) ((gz-5000)*0.1+45);}
            else if(gz<=12500){shui= (float) ((gz-8000)*0.2+345);}
            else if(gz<=15000){shui= (float) ((gz-12500)*0.25+1245);}
            else if(gz>15000){shui= (float) ((gz-15000)*0.3+1870);}
            System.out.println("应收个人所得税为:"+shui);
        }
    }



我的解答思路和尝试过的方法
我想要达到的结果 能否优化 简化代码老哥们,这个感觉有点繁杂,但是我又想不到优化方式
  • 写回答

2条回答 默认 最新

  • Java大魔王 2022-11-01 10:44
    关注

    不想用那么多if else, 那就用三元表达式嵌套

    public static void main(String args[]) {
            float shui =0;
            Scanner input =new Scanner(System.in);
            System.out.println("请输入你本月的工资: ");
            int gz= input.nextInt();
            shui = (gz - 15000) > 0 ? (float) ((gz-15000)*0.3+1870) : 
                    (gz - 12500) > 0 ? (float) ((gz-12500)*0.25+1245) : 
                    ((gz - 8000) > 0) ? (float) ((gz-8000)*0.2+345) : 
                    (gz - 5000) > 0 ? (float) ((gz-5000)*0.1+45) : 
                    (gz - 3500) > 0 ? (float)( (gz-3500)*0.03) : 0;
            System.out.println("应收个人所得税为:"+shui);
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月9日
  • 已采纳回答 11月1日
  • 创建了问题 11月1日

悬赏问题

  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系