4.1返回值
我们先来看一下random这个方法的Java源代码
public static double random() { return RandomNumberGeneratorHolder.randomNumberGenerator.nextDouble(); }
与原来的对比一下区别,有两处格式的区别
- 第一处就是方法的声明上有不同
// 验证码方法 public static void code(int len) // 随机数方法 public static double random()
仔细观察会发现,把void换成了double,这个改变就是方法返回值的声明,如果这个位置是void表示的是无返回值,否则就是有返回值,返回值可以是:int,String,double,boolean
- 第二处不同就是方法返回语句有不同,在方法返回类型声明为double之后我们在方法执行的时候必须执行return 返回结果;这个返回结果的类型必须和方法声明的返回值一致。
public class Captcha{ public static void main(String[] args){ //打印出4位随机码 System.out.println("本次的验证码是:"+code(1000)); } /** * 得到验证码 */ public static int code(int len){ // 得到随机数结果 double val = Math.random(); // 随机数结果*9+1 然后再乘以位数得到验证码 int result = (int)((val*9+1)*len); return result; } } public class Captcha{ public static void main(String[] args){ // 得到验证码 int codeValue = code(1000); // 如果 codeValue 在1000和9999之间,那么就是正确的4位随机数 if(codeValue >= 1000 ){ if(codeValue<=9999){ System.out.println("本次的验证码是:"+codeValue); } } } /** * 得到验证码 */ public static int code(int len){ // 得到随机数结果 double val = Math.random(); // 随机数结果*9+1 然后再乘以位数得到验证码 int result = (int)((val*9+1)*len); return result; } }
例子:公司到季度末了准备发奖金,如果销售额<100000,奖金按10%;销售额>=100000,奖金按9%;销售额>300000,奖金按7%;没有销售额,没有奖金
public class BonusDemo{ public static void main(String[] args){ int amount = bonus(0); System.out.println(amount); amount = bonus(80000); System.out.println(amount); amount = bonus(280000); System.out.println(amount); amount = bonus(500000); System.out.println(amount); } /** * 计算奖金 */ public static int bonus(int amount){ if (amount<100000){ return amount*10/100; } else if(amount>300000){ return amount*7/100; } else if(amount>=100000){ return amount*9/100; } else { return 0; } } }
4.2布尔&&逻辑运算符
关系运算符的结果要不然是true,要么是false,我们将这个类型成为布尔型。
boolean flag = x>0; if(flag){ System.out.println("x>0"); }
boolean也可以作为方法的参数或者返回类型
public static boolean isPass(int score){ return score >= 60; }
有些时候我们还可以对boolean数据进行!的运用,这个表示对boolean值进行否定,比如
boolean isPass = false; if(!isPass){ System.out.println("通过考试"); }
例子:税计算器
级数 | 全月应纳税所得额 | 税率 | 速算扣除数 |
2 |
超过3000元 至12000元的部分 |
10% | 210 |
3 |
超过12000元 至25000元的部分 |
20% | 1410 |
4 |
超过25000元 至35000元的部分 |
25% | 2660 |
- 如果某职工的工资收入为20000元,每月需要缴纳的五险一金费用为1500元,该职工目前有一个孩子正在上学,还有年满60岁的父母需要赡养,那么该职工可以享受的子女教育专项和扣除标准就是1000元/月,若职工是独生子女,赡养老人专项扣除标准为2000元/月。那么该职工应纳税额就是20000-5000-1500-1000-2000=10500元。根据以上税率表,可以算出,该职工需要缴纳的个人所得税为:10500*10%-210=840元。
- 纳税人的每月个人所得税=(工资收入-五险一金-起征点5000元-专项附加扣除)*适用税率。
下面用代码来完成这个个税计算器:
public class Test{ public static void main(String[] args) { int amount = compute(20000, 1500, true, true, true); System.out.println(amount); amount = compute(40000, 1500, true, true, true); System.out.println(amount); } /** * 计算个人缴纳的个税 * * @param income 工资收入 * @param socialSecurity 5险一金金额 * @param onlyChild 是否独生子女 * @param hasChild 是否有小孩在读书 * @param hasParents 是否有60岁以上的父母需要赡养 * @return */ public static int compute(int income, int socialSecurity, boolean onlyChild, boolean hasChild, boolean hasParents) { int total = income - 5000 - socialSecurity; if (hasChild) { total = total - 1000; } if (hasParents && onlyChild) { total = total - 2000; } if (total >= 3000 && total < 12000) { total = total * 10 / 100 - 210; } else if (total >= 12000 && total < 25000) { total = total * 20 / 100 - 1410; } else if (total >= 25000 && total < 35000) { total = total * 25 / 100 - 2660; } return total; } }