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

10-06 02:36