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;
       }
}

Ok。したがって、このコードの目的は、ユーザーが入力した問題の導関数を潜在的に解決することです。導関数を解くには、2 つの数値の gcf を取得して因数分解する必要があります。このコードをコンパイルしようとすると、return ステートメントがありませんと表示されます。それが何なのかは分かりますが、「余りを返す」と言おうとすると、初期化されていない可能性があると表示されます。誰かが私がこのコードで間違っていることを教えてくれませんか? return ステートメントに何を入れるべきか教えてください。ありがとう!ちなみにこれはJavaコードです。

4

3 に答える 3

4

変数xy、およびremainder宣言されている場所は? int remainder;あなたが投稿したコードのどこにもステートメントがありません。メソッドにもreturnステートメントがないため、コンパイルされません。

ローカル変数 (メソッド内で宣言する変数) は、値を読み取る場所で使用する前に、値で初期化する必要があります。たとえば、次のようにします。

public int method(int a) {
    int value;

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

    return value;
}

acaseが 10 を超えていないvalue場合、ステートメントに到達したときに変数に値が割り当てられてreturnいないため、Java はどの値を返すかを認識していないため、取得しているのと同じエラーが発生します。

valueどのような場合でも、 に値が割り当てられていることを確認する必要があります。

于 2013-10-24T11:12:01.697 に答える
0

必要に応じて、残りを返すことができます。残りを値に初期化するだけです。例: 残り = 0;

于 2013-10-24T11:11:09.273 に答える
0

それが何なのかは分かりますが、「余りを返す」と言おうとすると、初期化されていない可能性があると表示されます。

したがって、コードの先頭で次のように宣言するだけです。

remainder = 0;

また、変数に名前を付けるだけでなく、もう少し適切にすることも考えますmyj

于 2013-10-24T11:15:22.757 に答える