具有多个条件的for循环

Sat*_*bir 0 java for-loop

我有一个阵列

int[] arr = {9,20,-2,-45,23,5,1};
Run Code Online (Sandbox Code Playgroud)

我正在使用它进行排序

java.util.Arrays.sort(arr);
Run Code Online (Sandbox Code Playgroud)

for循环:

for(int i =0;(i<arr.length) && (arr[i] > 0) ; i++)
Run Code Online (Sandbox Code Playgroud)

因为这种情况似乎不起作用(arr[i] > 0).我没想到为什么这不起作用的原因.令人惊讶的是,以下循环以预期的方式工作:

for(int i =0;(i<arr.length) && (arr[i] != 0) ; i++)
Run Code Online (Sandbox Code Playgroud)

和

for(int i =0;(i<arr.length) && (arr[i] < 0) ; i++)
Run Code Online (Sandbox Code Playgroud)

Mik*_*ike 6

java.util.Arrays.sort(int[] arg);按升序排序,因此arr[0]排序后的第一个值()将为-45.for(int i =0;(i<arr.length) && (arr[i] > 0) ; i++)因为第一次迭代会是假的arr[0] == -45,因此(arr[0] > 0)是假的.)