Java中有for循环的问题

问题描述 投票:-2回答:3

我正在使用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;
    }

}
java
3个回答
0
投票

此代码在第一次迭代后退出循环。如果希望在找到值后退出循环,请尝试将中断移到if块内。


0
投票

您的代码将在第一次迭代时退出for循环,因为您将break放在循环的末尾。 break基本上退出任何循环,因此您只需要删除该循环即可使用!


0
投票

此问题是由于break键盘的错误放置。

© www.soinside.com 2019 - 2024. All rights reserved.