在给定的JUNIT测试第2部分中,找到与平均值最接近的数组中的值

时间:2018-08-18 20:42:04

标签: arrays return-value

我的findMiddle()方法中的第一个for循环应该在数组列表中找到数组的AVERAGE,但是我的第二个for循环应该在数组中找到最接近该平均值的值。但是,Java甚至不接受我的版本。它不接受什么?

这是我为编写类的测试:

// Empty2DArray returns a zeroed 2D array.
func Empty2DArray(arraySize int) [][]float32 {
    emptyArray := make([][]float32, arraySize)
    for y := 0; y < arraySize; y++ {
        row := make([]float32, arraySize)
        for x := 0; x < arraySize; x++ {
            row[x] = 0
        }
        emptyArray[y] = row
    }
    return emptyArray
}

我到目前为止有什么:

    import static org.junit.Assert.*;

import org.junit.Test;

public class Question2Test 
{

    int[] arrayInts = {1, 1, 3, 4, 9};

    private Question2 avg1;
    private Question2 avg2;
    private Question2 avg3;

    @Test
    public void testFindMiddle() 
    {
        Question2 avg1 = new Question2();
         assertEquals(1, avg1.getAverage(arrayInts));
         Question2 avg2 = new Question2();
         assertEquals(4, avg2.getAverage(arrayInts));
         Question2 avg3 = new Question2();
         assertEquals(0, avg3.getAverage(arrayInts));
    }
//find what I need to do with "getAverage" == return avg?
}

所以第一个问题是循环根本不需要我花费几秒钟的时间。我能够找到平均值,现在Java不接受我找到的最接近平均值的值。

1 个答案:

答案 0 :(得分:0)

不考虑第二个for循环的原因是return语句。由于return语句将一直执行,因此永远不会考虑第二个for循环。因此,控制流程在变化,永远不会回到该方法。