布尔分配没有捕获,需要了解更多

1 java arrays boolean-logic

public class MyClass {
     public static void main(String args[]) {
       int[] nums = {1, 2, 9, 3, 4};
       boolean results = false;
       int end = nums.length;
       if (end>4)end=4;
       for (int x=0;x<end;x++)
       {
            System.out.println(nums[x]);
            results = (nums[x] == 9);
       }
       System.out.println(results);
    }
 }
Run Code Online (Sandbox Code Playgroud)

下面的代码检查数组的前4个元素中是否存在9,但是如果在数组的前4个元素中不超过1"9",则以这种方式使用布尔运算符似乎总是失败.

为什么是这样?从逻辑上看,这似乎应该有效,当我理解为什么某些东西不起作用时,它真的有助于我更好地理解.

luc*_*umt 5

原因是你有所有元素,结果将是最后一个元素的结果,

所以你需要for在找到匹配结果时停止

  for (int x=0;x<end;x++)
   {
        System.out.println(nums[x]);
         if(nums[x] == 9){
          result = true;
          break;
         }
   }
Run Code Online (Sandbox Code Playgroud)