Java 返回语句丢失,即使代码格式正确且方法已明确调用

Java 返回语句丢失,即使代码格式正确且方法已明确调用,java,debugging,Java,Debugging,我确保我所有的牙套都放在上课的正确位置,但是运气不好。当我试图在calculatePremium方法中打印计算结果时,我得到一个返回语句错误。我得到的错误在我代码的底部 import java.util.Scanner; class Insurance { public static void main (String args[]) { int currentYear, birthYear;

我确保我所有的牙套都放在上课的正确位置,但是运气不好。当我试图在calculatePremium方法中打印计算结果时,我得到一个返回语句错误。我得到的错误在我代码的底部

 import java.util.Scanner;
    class Insurance 
    {
        public static void main (String args[]) 
        {
            int currentYear, birthYear;
            Scanner keyboard = new Scanner(System.in);
            System.out.print("Enter current year >> ");
            currentYear = keyboard.nextInt();
            System.out.print("Enter birth year >> ");
            birthYear = keyboard.nextInt();
            calculatePremium(currentYear, birthYear);
        }
    
        public static int calculatePremium(int currentYear, int birthYear) 
            {
    
            System.out.println("The premium is $" + ((currentYear - birthYear) /10 ) + (15) * 20 );
    
            }
    }

    

    Insurance.java:21: error: missing return statement
            }
            ^
    1 error
    sandbox $ java Insurance
    Error: Could not find or load main class Insurance

由于您不希望calculatePremium()返回任何内容,因此应更改以下方法头:

public static int calculatePremium(int currentYear, int birthYear)
为此:

public static void calculatePremium(int currentYear, int birthYear)

现在将返回类型设置为int。如果不希望方法返回值,则返回类型必须为void。

可能没有类文件,因为源代码无法编译,因为它在语法上无效-缺少return语句

calulatePremium说它返回一个int,所以它需要

   public static int calculatePremium …

首先修复第一个bug。

问题是您的方法的返回类型为
int
,但您忽略了
return
语句。您可以通过编写如下代码所示的方法来解决此问题

public static int calculateprium(int当前年份,int出生年份)
{
报税表(本年度-出生年份)/10+(15)*20;
}
然后像这样编写
main
方法

publicstaticvoidmain(字符串[]args){
int当前年份、出生年份、保费;
扫描仪键盘=新扫描仪(System.in);
系统输出打印(“输入本年>>”;
currentYear=键盘.nextInt();
系统输出打印(“输入本年>>”;
生日=键盘.nextInt();
保费=计算保费(当前年份、出生年份);
System.out.println(“保险费为$”+保险费);
}
或 将返回类型更改为
void

public static void calculateprium(整数当前年份,整数出生年份)
{
System.out.println(“保险费为“$”+((当前年份-出生年份)/10)+(15)*20);
}