我正在尝试编写一个简单的程序,该程序从用户那里输入工资,然后输出该工资+ 200。
当我输入值时,它显示出要再次输入薪水的问题,然后在再次输入数字后,它似乎可以正常工作。
知道为什么吗?
package learning;
import java.util.Scanner;
public class SalaryReadIn {
Scanner scan = new Scanner(System.in);
public SalaryReadIn () {
}
public int getSalary () {
int currentSalary;
System.out.println("Enter your current salary: ");
currentSalary = scan.nextInt();
return currentSalary;
}
public void calculate () {
int currentSalary = getSalary();
int newSalary = currentSalary + 200;
System.out.println("Your new salary is: £" + newSalary);
}
public static void main (String args[]) {
SalaryReadIn salary = new SalaryReadIn();
salary.getSalary();
salary.calculate();
}
}
谢谢你的帮助!
最佳答案
如Oliver所述,您两次调用getSalary()
方法。
JVM首先运行main(String args[])
方法。
然后找到线,
salary.getSalary();
然后,JVM进入
getSalary()
方法并在那里执行任何操作。接下来,它找到
salary.calculate()
行,然后进入该方法。在您的
calculate()
方法中,int currentSalary = getSalary();
包含再次调用的
getSalary()
方法。在main方法中删除以下代码行。
salary.getSalary();