Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 建立多项式的结构_Java_Arrays - Fatal编程技术网

Java 建立多项式的结构

Java 建立多项式的结构,java,arrays,Java,Arrays,我试图通过简单地列出系数,并用一个具有其相应幂的变量来显示它们,来评估多项式的结构。我不是在评估,我只是想把方程弄出来 public class TestPolynomialBackup{ public static void main(String[] args){ Polynomial p1 = new Polynomial(4); System.out.println(p1); } public static class

我试图通过简单地列出系数,并用一个具有其相应幂的变量来显示它们,来评估多项式的结构。我不是在评估,我只是想把方程弄出来

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{
公共静态void main(字符串[]args){
多项式p1=新的多项式(4);
系统输出打印LN(p1);
}
公共静态类多项式
{
私有int[]coef;
私有整数功率=3;
公共多项式(INTA){
coef=newint[]{4,3,2,1};
}
公共字符串toString(){

对于(int i=0;i您应该在for循环之后添加一个返回

编译器无法编译,因为如果未执行循环,则方法将不返回任何内容


但是您应该检查循环的工作方式,因为循环中有一个返回,所以它只执行一次。

您可能想更熟悉Java,并思考一下您希望该方法做什么:

public String toString() {
    for (int i = 0; i < coef.length - 1; i++) {
        String s = coef[2] + "x^" + power;
        return s;
    }
}
公共字符串toString(){
对于(int i=0;i
这很可能就是你想要的:

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();
}
公共字符串toString(){
StringBuilder s=新的StringBuilder();
对于(int i=0;i
变化:

  • return
    置于循环外部
  • 累积结果,而不是总是以某种方式创建新字符串
  • 实际上,在循环内部使用索引
    i
  • 让循环从
    0
    转到
    coef.length-1
  • 添加了
    “+”
    作为分隔符

你的toString()毫无意义,这就是它无法编译的原因。你也需要在循环之外返回,但即使你这样做了,它也不会做什么有用的事情。实际上,你需要使用
StringBuilder
而不是一直创建新字符串。实际上,只是想先强调正确的语义;)特别是,这看起来一点都不重要-编辑…谢谢olydis。我离开java已经好几个月了,大部分都忘了。这种做法严格适用于学校。我还在循环中添加了一些条件,这些条件将决定字符串的打印方式。