BlueJ - Java Code

  • 本文关键字:Code Java BlueJ java
  • 更新时间 :
  • 英文 :


我得到了以下代码:

public class Square {
    public static double[] square (double a[]){
        double[] s = new double[a.length];
        for (int i=0; i<a.length; i++) {
            s[i]=a[i]*a[i];
        }
        return s;
    }
    //other methods...
}

每当我调用BlueJ方法并选择double[] square (double a[])并键入0,1,2和3时,我都会得到一个预期的错误消息错误标识符。所以我不能测试我的数字,我该如何解决这个问题?正常情况下,如果你键入0,1,2和3,你应该得到每个数字的平方,但出于某种原因,我没有管理它。

编辑:

这就是我尝试测试方法的方式:

Square.square(0, 1, 2, 3);

问题是您需要发送一个double[],但您要发送4个int参数。有两种方法可以解决这个问题:

  1. 发送一个真正的double[]:

    Square.square(new double[] { 0, 1, 2, 3} );
    
  2. 更改接收varargs:的方法

    public static double[] square (double ... a)
    

    现在你可以传递任意数量的参数:

    Square.square(0, 1, 2, 3, 4, 5, ... );
    

只需记住将方法的结果存储在另一个double[]中即可评估结果:

double[] results = Square.square( <add the arguments depending on the chosen solution> );
System.out.println(java.util.Arrays.toString(results));

为了测试代码是否有效,您可以简单地编写一个public static void main方法,并调用所需的方法,看看它是否可以执行,并可能评估结果。你甚至可以在Square类中这样做:

public class Square {
    public static double[] square(double[] a) {
        //the definition of your method...
    }
    public static void main(String[] args) {
        //calling the method to seek if compiles
        double[] results = Square.square(new double[] { 0, 1, 2, 3 });
        //printing the results
        System.out.println(java.util.Arrays.toString(results));
    }
}

如果您想要/需要测试代码,这意味着执行它并评估您是否得到了所需的结果,您可以使用JUnit编写单元测试。我只想添加一个测试的例子:

public class SquareTest {
    @Test
    public void testSquare {
        double[] expectedResults = { 0, 1, 4, 9 };
        double[] results = Square.square(new double[] { 0, 1, 2, 3 });
        Assert.assertArrayEquals("Not the desired results.", expectedResults, results, 0.00001);
    }
}

最新更新