如何使用方法检查我要添加到数组的新元素是否已添加?

时间:2016-11-27 20:26:44

标签: java

我正在研究一个学校项目,我想创建一个程序,它将显示一个2 x 2的数字网格(从1 - 16中随机生成)。然后,该程序将逐步对其进行排序。

我应该有一个逻辑检查课。

我试图创建一个方法,它将获取main()程序想要添加的值,检查它是否已经在数组中,如果该数字已经存在则返回false如果没有,则为真。

class LogicStatementsV2 {
    //Declare constants
    private final int LENGTH_OF_INDEX = 16;
    //Create an array of how the index of the array should look like
    int[] finalIndex = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
    //Creates an array of length 16 which will be filled as the main program uses a random number generator.
    int[] buildIndex = new int[LENGTH_OF_INDEX];

    /**Method that is called to add a random number if that number hasnt been entered    
    * @param n The integer that the main class will generate from a random number generator
    * @return wether that number is already in the array or not
    */
    public boolean addIfValid(int n) {
        for (int i = 0; i < 16; i++) {
            if (n == buildIndex[i]) return false;
            else return true;
        }
    }
}

由于某种原因,第一个到第一个}一直说要求返回值。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

else return true;不属于循环。只有在您通过所有元素循环并且发现没有重复项后,才能安全地返回true:

public boolean addIfValid(int n) {
    for (int i = 0; i < 16; i++) {
        if (n == buildIndex[i]) return false;
    }
    return true;
}