亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于數組越界的問題

package?com.test3;
/*
?*?
?*?功能:輸出保存在數組中的前三名
?*/
import?java.util.Arrays;
public?class?test8?{

	/**
	?*?@param?args
	?*/
	public?static?void?main(String[]?args)?{
		//?TODO?Auto-generated?method?stub
		int?[]scores?=?{?89?,?-23?,?64?,?91?,?119?,?52?,?73};
????????test8?sys?=?new?test8();
????????sys.getScore(scores);
	}
	public?int[]?getScore(int?score[]){
		Arrays.sort(score);
		int?count?=?0;
		for(int?i=score.length;i>=0;i--){
			if((score[i]>100)||(score[i]<0)){
				continue;
			}
			count++;
			if(count>3){
				break;
			}
			System.out.println("考試成績的前三名為:");
			System.out.println(score[i]);
		}
		return?score;
	}

}

我想要輸出保存在數組中的前三名的成績,可是eclipse提示數組越界呢,這是為什么呢?

這是運行結果:

http://img1.sycdn.imooc.com//56f154570001daf006340148.jpg


正在回答

2 回答

因為第一個數組的下標是從0開始的,如果你訪問score.length的話,會超出了數組的長度。從1到score.length的長度是score.length,但是數組從0開始,訪問score.length的話,相當于訪問了第score.length+1,所以會出現訪問數組越界Exception

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

VivianLee 提問者

嗦嘎,謝謝你!
2016-03-28 回復 有任何疑惑可以回復我~

for(int?i=score.length-1;i>=0;i--)

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

VivianLee 提問者

為什么我的i不能從score.length開始呢
2016-03-23 回復 有任何疑惑可以回復我~
#2

xixiyingyi 回復 VivianLee 提問者

因為第一個數組的下標是從0開始的,如果你訪問score.length的話,會超出了數組的長度。從1到score.length的長度是score.length,但是數組從0開始,訪問score.length的話,相當于訪問了第score.length+1,所以會出現訪問數組越界Exception
2016-03-27 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

關于數組越界的問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號