使用foreach方法为啥会有逻辑错误?
int i=0;
for(int a:arr){
i+=((100>=a)&&(0<=a))?1:0;
}
i为什么会是5?
全部代码:
import java.util.Arrays;
public class HelloWorld {
//完成 main 方法
public static void main(String[] args) {
HelloWorld hello=new HelloWorld();
hello.Top3(scores);
}
//成绩数组必须是全局变量,否则HelloWorld类无法调用
static int scores[]={89 , -23 , 64 , 91 , 119 , 52 , 73};
public void Top3(int[] arr)
{
Arrays.sort(arr);
//统计有效成绩个数
int i=0;
for(int a:arr){
i+=((100>=a)&&(0<=a))?1:0;
}
//输出成绩信息
// System.out.println("成绩排名是:"+Arrays.toString(arr));
// System.out.print("有效成绩有"+i+"个,包括:");
/* for(;i>0;i--){
System.out.print(arr[arr.length-i]+",");
}*/
System.out.println("");
System.out.println("考试前三名为:");
for(i=3;i>0;i--){
System.out.println(arr[arr.length-i]);
}
}
}