我正在使用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
块内。
您的代码将在第一次迭代时退出for
循环,因为您将break
放在循环的末尾。 break
基本上退出任何循环,因此您只需要删除该循环即可使用!
此问题是由于break
键盘的错误放置。