Java应用之if和switch语句的使用【计算纳税款和实得工资数】

一起来学习Java鸭!

今天呢,星辰带来的是if和switch语句的小应用,税率不同的情况下,纳税款和实得工资数如何计算,我们先来看一下需求:

需求:求纳税款和实得工资数
     不同工资s的税率p如下:
         s < 1000                  p = 0 %
         1000 <= s < 2000    p = 5 %
         2000 <= s < 3000    p = 8 %
         3000 <= s < 5000    p = 10 %
         5000 <= s                p = 15 %

好的,来看一下采用if和switch代码该如何写呢?

使用if分支语句比较简单一些

//加载util包
import java.util.*;

public class IfTest {

public static void main(String args[ ]) {
    
    Scanner  reader = new Scanner(System.in);

    //s为工资,p为税率,t 为纳税款,s1为实得工资数
    double s,p,t,s1;

    System.out.print("请输入工资:");

    //键盘键入工资数
    s = reader.nextDouble();

    //使用if的多分支语句
    if(s < 1000) {                
        p = 0;
    }else if(s < 2000) {
        p = 0.05;
    }else if(s < 3000) {
        p = 0.08;
    }else if(s < 5000) {
        p = 0.1;
    }else {
        p = 0.15;
    }

    //计算纳税款
    t = s * p;

    //计算实得工资数
    s1 = s - t;

    System.out.println("纳税款为" + t + "," + "实得工资数为" + s1);
   }
}

使用switch语句核心是case该如何写

星辰想的是用工资千位上的数来判断范围,这样又有一个问题,如何取出千位上的数字呢,用s去除以1000,因为s是double类型的数据,所以除完之后是一个小数,我们不可能在case里把所有的小数全部写完,所以运用强制类型转换成int类型,这样例如:最后结果是1的话,一定是1000 <= s < 2000,我们就可以判断出s的范围,从而得出税率,计算相应数据啦~

//加载util包
import java.util.*;

public class SwitchTest {

   public static void main(String args[ ]) {
	   
      Scanner  reader = new Scanner(System.in);
      //s为工资,p为税率,t 为纳税款,s1为实得工资数
      double s,p,t,s1;

      System.out.print("请输入工资:");

      //键盘键入工资数
      s = reader.nextDouble();

      //x为工资所属范围
      int x = (int)(s / 1000);

      //使用switch控制语句
      switch(x) {
      	case 0 ://s < 1000
      		p = 0;
      		break;
      	case 1 ://1000 <= s < 2000
      		p = 0.05;
      		break;
      	case 2 ://2000 <= s < 3000
      		p = 0.08;
      		break;
      	case 3 : case 4 ://3000 <= s <5000
      		p = 0.1;
      		break;
      	default :
      		p = 0.15;
      		break;
      }

      //计算纳税款
      t = s * p;

      //计算实得工资数
      s1 = s - t;

      System.out.println("纳税款为" + t + "," + "实得工资数为" + s1);
   }
}

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

囿于辰星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值