布尔表达式和if语句

一、以前忽略了“三元操作符”,今天遇到了2次。有必要记一下它了。

例:(表达式)int a,b; 请用表达式判断b是不是a的因子
百度因子的含义:因子就是所有可以整除这个数的数,不包括它本身
(a%b==0)?true:false;

例:(if语句)某项查询执行之后,n条结果,单页显示m条记录,第i页显示第几条 到第几条?

三元表达式
布尔表达式?表达式1:表达式2;
如果布尔表达式的值为真则整个三元表达式的值为表达式1的值,如果为假则三元表达式的值为表达式2的值

二、if语句
例:(if 语句)中国的个税计算方法:
应税所得为税前收入扣除3500 元(起征点),然后超出部分,按照以下税率收税:
应纳税所得额 税率(%) 速算扣除数
1500 3% 0
1501-4500 10% 105
4501-9000 20% 555
9001-35000 25% 1005
35001-55000 30% 2755
55001-80000 35% 5505
80000+ 45% 13505
规则:应缴税款 = (税前工资 - 各类保险 - 3500) * 税率 - 速算扣除数。
注意:此处各类保险默认为262元。

实发工资 = 税前工资 - 应缴税款 - 各类保险。

要求:读入一个整数,表示税前收入,输出应当缴纳的个人所得税和税后实际收入。

我的代码
package chp1;
import java.util.*;
public class TestTax{
public static void main(String…args){
System.out.print(“请输入你的税前收入:”);
Scanner sc=new Scanner(System.in);
double n=sc.nextInt();//n为税前收入
if(n<3500){
System.out.println(“免税”);
return;
}
double m=n-3500;//m为应纳税所得额
double tax=0.0;//tax为应缴税款,问题:这样写double tax;为什么提示我尚未初始化变量tax
if(m<=1500)
tax=(n-262-3500)*0.03-0;
else if(m<=4500)
tax=(n-262-3500)*0.1-105;
else if(m<=9000)
tax=(n-262-3500)*0.2-555;
else if(m<=35000)
tax=(n-262-3500)*0.25-1005;
else if(m<55000)
tax=(n-262-3500)*0.3-2755;
else if(m<80000)
tax=(n-262-3500)*0.35-5505;
else if(m>=80000)
tax=(n-262-3500)*0.45-13505;
double b=n-tax-262;//b为实发工资
System.out.println(“应缴纳的个人所得税为:”+tax);
System.out.println(“税后的实际收入为:”+b);
}
}

三、忘记了switch中的break。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章