为了账号安全,请及时绑定邮箱和手机立即绑定

来大神帮我看下这是什么意思?

public class HelloWorld {
   
    //完成 main 方法
    public static void main(String[] args) {
int [] scores={89,-23,64,91,119,52,73};   
  HelloWorld h =new HelloWorld();
  h.paixu(scores);  
    }
   
    //定义方法完成成绩排序并输出前三名的功能
   
   
    public void paixu(int [] scores){
     Arrays.sort(scores);
  int a=0;
  for(int i = scores.length - 1; i >= 0; i-- ){ 
   if(scores[i]<=0||scores[i]>=100){
    continue;    
   }else{
    a++;
    if(a>3)
     break;
   }
   System.out.println(scores[i]); 
  }
 }
 
}

//我不明白scores.lenth-1 是什么意思?

正在回答

2 回答

Arrays.sort(scores); // 应该是从小到大排序
// 你要拿前三的分数,直接拿最后三位就好了
for(int i  = scores.length - 4; i <= scores.length - 1; i++){
    System.out.println(scores[i]); 
}


0 回复 有任何疑惑可以回复我~

我知道了,数组的下标是0---scores.lenth-1

1 回复 有任何疑惑可以回复我~
#1

丶小八戒

恩...是length scores.lenth 获取数组的长度, 减 1 就是数组最后一个元素的下标,因为数组下标是从0开始的
2015-08-12 回复 有任何疑惑可以回复我~
#2

_朝歌_ 提问者 回复 丶小八戒

额,,好的,Arrays.sort(scores);排序,我这样写for(int i = 0; i <= scores.length; i++ )的问题怎么弄?
2015-08-12 回复 有任何疑惑可以回复我~
#3

_朝歌_ 提问者 回复 丶小八戒

就输出倒数的几个成绩了。。。
2015-08-12 回复 有任何疑惑可以回复我~
#4

_朝歌_ 提问者 回复 丶小八戒

如果我想这样写for(int i = 0; i <= scores.length; i++ ),那该怎么改呢?
2015-08-12 回复 有任何疑惑可以回复我~
#5

丶小八戒 回复 _朝歌_ 提问者

for(int i = 0; i <= scores.length; i++ ) 你这个循环会越界,下标是 i < scores.length 或者 i <= scores.length - 1
2015-08-12 回复 有任何疑惑可以回复我~
#6

_朝歌_ 提问者 回复 丶小八戒

哦,忘了这个越界的问题,那这样写,for(int i = 0; i <= scores.length-1; i++ ), 我怎样才能输出前三的成绩呢?
2015-08-12 回复 有任何疑惑可以回复我~
查看3条回复

举报

0/150
提交
取消

来大神帮我看下这是什么意思?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信