好的,所以我是编程的新手(如果我问一个问题很简单,不要嘲笑我)。 我的代码示例如下:
public int calcGCF(int mya, int mye, int myf, int myj)
{
x = myj * myf;
y = mye* mya;
while(x != 0 && y != 0)
{
if(x % y == 0)
{
remainder = y;
}
int gcf;
gcf = y;
y = x % y;
x = gcf;
}
}
确定。所以这段代码的用途是潜在地解决用户输入的任何问题的衍生物。解决衍生物的一部分是获得2个数字的gcf并将其分解出来。当我尝试编译这段代码时,它说我错过了一个return语句。我理解那是什么,但是当我试着说“返回剩余部分”时它说可能没有初始化。有人可以告诉我在这段代码中我做错了什么,并帮助我将我应该放在我的回复声明中?谢谢!顺便说一句,这是使用java代码。
答案 0 :(得分:4)
变量x
,y
和remainder
在哪里宣布?我在您发布的代码中的任何位置都没有看到int remainder;
语句。该方法中也没有return
语句,因此无法编译。
在您读取值的任何位置使用它们之前,必须使用值初始化局部变量(在方法中声明的变量)。如果您这样做,例如:
public int method(int a) {
int value;
if (a > 10) {
value = 99;
}
return value;
}
然后您将得到与您相同的错误,因为如果a
不大于10,则当您到达{{1}时,变量value
未分配任何值语句 - 所以Java不知道返回什么值。
您必须确保在任何可能的情况下为return
分配了值。
答案 1 :(得分:0)
如您所愿,您可以退还剩余部分。只需将余数初始化为一个值即可。例如:remainder = 0;
答案 2 :(得分:0)
我明白那是什么,但是当我试着说“返回剩余时间”时它说可能没有初始化。
因此,您只需要在代码顶部声明类似的内容:
remainder = 0;
我还会考虑比myj
更适合命名变量。