我试图开发一种方法,该方法检查是否一个给定的阵列的前4个元素(假设该阵列具有至少4个元件)被连续彼此相等,我的第一种方法是创建一个布尔变量并将其设置为false
在第一并将其if a[i] == a[i + 1]
设置为true
. 但问题是,无论 4 个元素是否连续,它总是将其打印为 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;
}
我的错误在哪里?提前致谢!
如果它不是连续的并且循环到 3,则需要一个 else 分支将其再次设置为 false。或者最好在某些内容不相等时立即使用 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。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句