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

java编程问题

java编程问题

小涛b 2017-03-06 14:15:03
package demo;import java.util.Arrays;public class HelloWorld { public static void main(String[] args){ HelloWorld hello=new HelloWorld(); int[] score={89 , -23 , 64 , 91 , 119 , 52 , 73}; hello.test(score); } public void test(int[]score){ Arrays.sort(score); int number=0; for(int i=score.length-1;i>=0;i--){ if(score[i]<=0 || score[i]>=100){ continue; } number++; if(number>3){ break; } System.out.println(score[i]); } } } for循环之前虽然经过sort方法进行排序过. 但是for循环为什么 i=score.length还要-1? 看不明白. 求解答
查看完整描述

3 回答

?
慕粉3233872

TA贡献70条经验 获得超29个赞

数组下标是从0开始排序的。

例如int[] score={89 , -23 , 64 , 91 , 119 , 52 , 73};

score[0]=89,score[1]=-23,score[6]=73.

length是获取数组长度的,从1开始数,这里的score.length=7

所以score[6]=score[score.length-1]=73

查看完整回答
1 反对 回复 2017-03-06
?
yanrun

TA贡献317条经验 获得超240个赞

这个和有没有排序是无关的,i=score.length-1是因为数组的下标是从0开始的,也就是说你的score数组的下标是从0到6的,而数组的长度为7,如果不减1,就会出现score[7],而数组中并不存在这个元素,会抛出数组下标越界异常

查看完整回答
1 反对 回复 2017-03-06
  • 3 回答
  • 0 关注
  • 1286 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信