我有一个任务,我们根据uml制作了一堆不同的方法。 uml看起来像这样+ add2Nums(iX1:int,iX2:int):int和我的代码看起来像这样:
import java.util.Scanner;
public class proj2
{
public static void main(String[] args)
{
add2Nums(2,3);
} //End main
public static int add2Nums(int iX1, int iX2)
{
}//End add2Nums
}//End proj2
我得到一个错误,说我错过了一个return语句,但是如果我在方法声明中将类型从int更改为void,它将编译,但这与uml告诉我要做的事情相反。我觉得我错过了一些非常重要的东西,谁能告诉我发生了什么?
答案 0 :(得分:4)
您应该在int
方法中返回某些内容(add2Nums
),因为编译器会告诉您:
public static int add2Nums(int iX1, int iX2)
{
int num = iX1 + iX2;
return num; //this is what you are missing
}
您的方法签名有int
类型:
public static int add2Nums(int iX1, int iX2) //note the "[int] add2Nums"
因此,编译器期望方法块在代码的所有可能路径中具有return
相同的数据类型/其父类型(int
或其父类型)。
答案 1 :(得分:1)
你的方法签名说它会返回一个整数值。但 你没有从你的方法中返回任何东西,因此错误。
public static int add2Nums(int iX1, int iX2)
{
return iX1 + iX2;
}