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

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

搞不清出了什么問題,求大神

public class hallo {

public static void main(String[] args){

?int i,j,k;

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

?for(i=0;i<7;i++){

?for(j=0;j<7;j++){

?if(score[j]<score[j+1]){

?k=score[j];

?score[j+1]=score[j];

?score[j+1]=k;

? }

?}

? }for(i=0;i<3;i++)

System.out.println("score[i]");

? }

}

出現Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7怎么解決

正在回答

2 回答

這個報錯是說數組下表超出范圍,以后記住這個關鍵詞“ArrayIndexOutOfBounds”(數組索引超出界限)。

那么問題在哪里呢?看了下你寫這個程序目的是想比對score[j]<score[j+1]時,將數組值對調位置,實現排序目的。但是試想一下,數組數量是7個,下標是0到6,那你循環了7次,最后一次下標是6,就出現了score[6]<score[7],請問哪里有score[7]?

for(i = 0; i < 7; i++){
???for(j = 0; j < 7; j++){

將這里的7改成6就不會報錯,但是這個程序來看是有問題的計算出來的結果并不數你想要的排序。

在JAVA里有一個方法可以直接對數組排序,java.uitl.Arrays里面的sort()方法,你可以看看第6章6-7節的內容。


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

Jharden 提問者

非常感謝!
2016-02-28 回復 有任何疑惑可以回復我~
import?java.util.Arrays;
public?class?HelloWorld?{
????
????//完成?main?方法
????public?static?void?main(String[]?args)?{
???????int?scores[]={89,-23,64,91,119,52,73};?
????????HelloWorld?hello=new?HelloWorld();
????????hello.forword(scores);
????????
????}
????//定義方法完成成績排序并輸出前三名的功能
????public?void?forword(int[]?scores){
????	int?count=0;
????????Arrays.sort(scores);
????????System.out.println("考試成績的前三名為:");
????????for?(int?i?=scores.length-1;?i>=0;?i--)?{
			if(scores[i]>0){
				count++;
				System.out.println(scores[i]);
				if(count>2)
					break;
			}
		}
????}
}


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

舉報

0/150
提交
取消
Java入門第一季(IDEA工具)升級版
  • 參與學習       1167475    人
  • 解答問題       18748    個

0基礎萌新入門第一課,從Java環境搭建、工具使用、基礎語法開始

進入課程

搞不清出了什么問題,求大神

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

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

幫助反饋 APP下載

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

公眾號

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