我正在研究一个学校项目,我想创建一个程序,它将显示一个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;
}
}
}
由于某种原因,第一个到第一个}一直说要求返回值。
我做错了什么?
答案 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;
}