1

好的,所以我是编程新手(如果我很容易提出问题,请不要嘲笑我)。我的代码示例如下:

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

4

3 回答 3

4

变量x,yremainder声明在哪里?int remainder;我在您发布的代码中的任何地方都没有看到任何声明。方法中也没有return语句,所以不会编译。

局部变量(在方法中声明的变量)必须先用一个值初始化,然后才能在读取值的任何地方使用它们。如果你这样做,例如:

public int method(int a) {
    int value;

    if (a > 10) {
        value = 99;
    }

    return value;
}

然后你会得到与你得到的相同的错误,因为如果a不大于 10,value当你到达语句时,不会为变量分配任何值return- 所以 Java 不知道那时要返回什么值。

您必须确保value在任何可能的情况下都为其分配了一个值。

于 2013-10-24T11:12:01.697 回答
0

我明白那是什么,但是当我尝试说“返回余数”时;它说它可能尚未初始化。

因此,您只需要在代码顶部声明如下内容:

remainder = 0;

我还会考虑将变量命名为比myj.

于 2013-10-24T11:15:22.757 回答
0

如您所愿,您可以退回剩余部分。只需将您的余数初始化为一个值。例如:余数=0;

于 2013-10-24T11:11:09.273 回答