一起来学习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);
}
}