我无法在回复陈述中找出我应该拥有的东西

时间:2013-10-24 11:02:55

标签: java

好的,所以我是编程的新手(如果我问一个问题很简单,不要嘲笑我)。 我的代码示例如下:

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代码。

3 个答案:

答案 0 :(得分:4)

变量xyremainder在哪里宣布?我在您发布的代码中的任何位置都没有看到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更适合命名变量。