0

単純に係数をリストし、それらを尊重された力を持つ変数で表示することで、多項式の構造を評価しようとしています。私は評価しているわけではありません。方程式を導き出そうとしているだけです。

public class TestPolynomialBackup{
    public static void main(String[] args){


        Polynomial p1 = new Polynomial(4);

        System.out.println(p1);

    }



    public static class Polynomial
    {
        private int[] coef;
        private int power=3;

        public Polynomial(int a ){
            coef = new int []{4,3,2,1};
        }



        public String toString() {

           for(int i=0;i<coef.length-1;i++){
               String s = coef[2] + "x^" + power;
                return s;
           }

        }



     }
}

出力: TestPolynomialBackup.java:38: エラー: return ステートメントがありません }

toString() メソッドでそのエラーが発生し続けます。私がやろうとしているのは、文字 "x" (変数) が電力と同様に表示されるかどうかを決定するいくつかの条件で、係数の配列を下る for ループを作成することだけです。

4

2 に答える 2

1

for ループの後に return を追加する必要があります。

ループが実行されない場合、メソッドは何も返さないため、コンパイラはコンパイルできません。

ただし、ループの動作方法を確認する必要があります。リターンが含まれているため、ループは 1 回しか実行されません。

于 2013-09-22T21:52:40.340 に答える
1

Java にもっと慣れて、このメソッドに何をさせたいか考えてみてください:

public String toString() {
    for (int i = 0; i < coef.length - 1; i++) {
        String s = coef[2] + "x^" + power;
        return s;
    }
}

これはおそらくあなたが望むものです:

public String toString() {
    StringBuilder s = new StringBuilder();
    for (int i = 0; i < coef.length; i++) {
        if (i != 0)
            s.append(" + ");
        s.append(coef[i]);
        s.append("x^");
        s.append(i);
    }
    return s.toString();
}

変更点:

  • returnループの外に置く
  • どういうわけか常に新しい文字列を作成する代わりに、結果を蓄積します
  • i実際にループ内でインデックスを使用する
  • ループを から0coef.length - 1
  • " + "区切り文字として追加
于 2013-09-22T21:53:54.990 に答える