烟尘最是抚人心 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日

悬赏问题

  • ¥30 酬劳2w元求合作写文章
  • ¥15 在现有系统基础上增加功能
  • ¥15 远程桌面文档内容复制粘贴,格式会变化
  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图