我正在使用for循环检查数组中是否存在给定值,问题是它直接在else分支上跳转并打印要检查的值(即使不满足条件)。通过消除中断;它仅对if语句进行一次迭代,并先打印if语句println(),然后打印else语句println()的6倍。为什么会这样呢?
public static void main(String[] args){
checkArray(new int[]{1, 2, 3, 4, 5, 6, 7}, 4);
}
public static void checkArray(int[] q, int a){
for(int i = 0; i < q.length; i++){
if(a == q[i]){
System.out.println("Number " + a + " is indeed present!");
} else {
System.out.println("Number " + a + " is not present!");
}
break;
}
}
该代码在第一次迭代后退出循环。if
如果希望在找到该值后退出循环,请尝试在块内移动中断。
事实是,您可以说直到查看完之后,数字才不在数组中。因此,您应该"Not found"
println()
在循环之后(即搜索到达数组末尾之后)移动。现在,我不会只提供代码,因为SO并不是一个家庭作业网站。但是不要在google或ddg上查找线性搜索。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句