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

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

求助,錯在哪里?

package chapter;
import java.util.Arrays;
/**
* Created by 釗哥 on 2017/5/14.
*/
public class nineteen {
? ?public static void main(String args[]){
? ? ? ?int []scores= new int[]{89,-23,64,91,119,52,73};
? ? ? ?nineteen zhao=new nineteen();
? ?zhao.xin(scores);
? ?}
public void xin(int[]scores){
? ? ? ?Arrays.sort(scores);
? ? ? ?int nums=0;
for(int i=scores.length;i>=0;i--) {
? ?if (nums > 3) {
? ? ? ?System.out.println("考試成績前"+nums+"名為:");
? ? ? ?break;
? ?}
? ?if (scores[i] >= 100 || scores[i] <= 0) {
? ? ? ?continue;
? ?} else {
? ? ? ?nums++;
? ? ? ?System.out.println(scores[i]);
? ?}
}
}
}



正在回答

3 回答

不是沒有導入包的問題,是數組越界。

package exercise;


import java.util.Arrays;


public class Nineteen {


public static void main(String args[]){

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

? ? ? Nineteen zhao=new Nineteen();

? ? ? zhao.xin(scores);

? }

public void xin(int[]scores){

? ? ? Arrays.sort(scores);

? ? ? int nums=0;

for(int i=scores.length-1;i>=0;i--) {

? if (nums >= 3) {

? ? ? System.out.println("考試成績前"+nums+"名為:");

? ? ? break;

? }

? if (scores[i] >= 100 || scores[i] <= 0) {

? ? ? continue;

? } else {

? ? ? nums++;

? ? ? System.out.println(scores[i]);

? }

}

? }

}

給你改正了兩處

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

Revolt 提問者

非常感謝!
2017-05-16 回復 有任何疑惑可以回復我~
#2

Revolt 提問者

為什么我之前那樣寫會出現數組越界呢?
2017-05-16 回復 有任何疑惑可以回復我~
#3

慕蓋茨038235 回復 Revolt 提問者

因為數組的下標是從0開始的,下標范圍是0---(length-1)(length是數組的長度)。就拿你這個數組來說,數組長度為7,下標是0-6。如果你遍歷的時候i=scores.length,執行第一次循環的時候,你的輸出中的score[7]是不成立的,它會提示你數組越界。
2017-05-17 回復 有任何疑惑可以回復我~

有啊

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7

at chapter.nineteen.xin(nineteen.java:20)

at chapter.nineteen.main(nineteen.java:10)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)

運行的時候彈出這個

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


import java.util.Arrays;

你沒有導入數組包

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

qq_噴泉_0

樓上正解
2017-05-14 回復 有任何疑惑可以回復我~

舉報

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

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

進入課程

求助,錯在哪里?

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

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

幫助反饋 APP下載

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

公眾號

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