我正在尝试开发一种方法,用于检查给定数组的前4个元素(假设数组至少包含4个元素)是否连续相等,我的第一种方法是创建一个布尔变量并将其设置为首先,将false
设置为if a[i] == a[i + 1]
。但是问题在于,无论这四个元素是连续的还是不连续的,它总是将其打印为true。
public static boolean isConsecutive(int[] a) {
boolean isConsecutive = false;
for (int i = 0; i < 4; i++) {
if (a[i] == a[i + 1]) {
isConsecutive = true;
}
}
return isConsecutive;
}
我的错误在哪里?提前致谢!
最佳答案
如果不是连续的,则需要else分支将其再次设置为false,并循环直到3。或者最好在某些不相等的情况下立即返回return语句,例如
if (a[i] == a[i + 1]) {
isConsecutive = true;
} else {
return false;
}
您也可以关闭变量
isConsecutive
,例如 public static boolean isConsecutive(int[] a) {
for (int i = 0; i < 3; i++) {
if (!(a[i] == a[i + 1])) {
return false;
}
}
return true;
}
请注意,您的循环对于索引超出绑定的异常并不安全,因为它的大小可能小于4。