一.年薪计算器
(1)通过键盘输入用户的月薪,每年是几个月的薪水
(2)输出用户的年薪
(3)输出一行字“如果年薪超过十万,恭喜你超过90%的国人”,“如果年薪超过20万,恭喜你超过98%的国人”
(4)直到键盘输入“break”退出程序
(5)输入中途,键盘输入“next”,则这个用户退出计算不显示恭喜,算下一个用户的1年薪
import java.util.Scanner;
public class test {
public static void main(String[] args) {
System.out.println("我的年薪计算器");
Scanner sc = new Scanner(System.in);
int yearsalary;
while (true) {
System.out.println("请输入月薪:");
int monthsalary = sc.nextInt();
System.out.println("请输入一年多少个月资薪:");
int month = sc.nextInt();
yearsalary = monthsalary * month;
String command = sc.nextLine();
if ("exit".equals(command)) {
System.out.println("退出软件");
break;
}
if ("next".equals(command)) {
System.out.println("请重新输入新的数据:");
continue;
}
if (yearsalary > 100000 && yearsalary < 200000)
System.out.println("恭喜你,超过了90%的中国人!");
if (yearsalary > 200000)
System.out.println("恭喜你超过了98%的中国人!");
System.out.println("年薪是:" + yearsalary);
}
}
}
运行结果:
结果发现在输完月薪和月份后没有让输出“exit”或者“next”或者其他,就直接执行下面代码
原因:“nextline”为输入下面一行字符串,我们在输完月份时输回车键,则“nextline”的内容就变成了空字符串,自动执行下面代码
解决方法:1.在输入字符串代码前加一行"sc.nexlline();"。
2.用“next()”取代“nextline()”。
接下来可以正常运行
二.处理迟到问题
(1)输入参数:员工名称,月薪
(2)处理逻辑:迟到1-10分钟,警告;
迟到11-20分钟,罚款100元;
迟到21-30分钟,罚款200元;
迟到30分钟以上,扣除半日工资;
迟到1小时以上,按旷工计算,扣除三日工资。
(3)输出罚款金额。
import java.util.Scanner;
public class test {
public static int late(int later){
Scanner sc=new Scanner(System.in);
String name=sc.next();
int fakuan=0;
int monthsalary=sc.nextInt();
if(later<10)
System.out.println("警告一次");
else if(later<20)
fakuan=100;
else if(later<30)
fakuan=200;
else if(later<60)
fakuan=monthsalary/(30*2);
else
fakuan=(monthsalary/30)*3;
System.out.println("罚款金额为:"+fakuan);
return fakuan;
}
public static void main(String[] args){
late(25);
}
}
三.方法的重载
方法的重载是指一个类中可以定义多个方法名相同,但参数不同的方法。调用时会根据不同的参数自动匹配对应的方法。
public class test {
public static int add(int a,int b){
int c=a+b;
System.out.println(c);
return c;
}
public static double add(double x,double y,double z){
double m=x+y+z;
System.out.println(m);
return m;
}
public static void main(String[] args){
add(1,2);
add(1.2,2.2,3.3);
}
}
当作用相似时,可以用相同的方法名
但是变量名不能相同
public class test {
public static void main(String[] args){
int c=20;
int c=1;
System.out.println(c);
}
}