方法被调用两次?

时间:2018-12-02 15:58:33

标签: java

我正在尝试编写一个简单的程序,该程序从用户那里获取输入的薪水,然后输出该薪水+ 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();

}


}

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

在主方法中调用

getSalary()两次,然后在第二个方法中调用它。

答案 1 :(得分:1)

正如奥利弗(Oliver)所说的,您两次调用getSalary()方法。

  • JVM首先运行main(String args[])方法。
  • 然后找到行,

    salary.getSalary();
    
  • 然后JVM进入getSalary()方法并在那里执行任何操作。

  • 接下来,它找到salary.calculate()行,就进入该方法。
  • 在您的calculate()方法中,该行

    int currentSalary = getSalary();
    

    包含再次调用的getSalary()方法。


在main方法中删除以下代码行。

salary.getSalary();