如何解决此“ OutOfBoundaryException”错误?

on
import java.util.Scanner;

class DataInput {
String name[];
int korean[], math[], english[];
int sum[];
double average[];
int students;
int rank[];

public void save() {
    Scanner sc = new Scanner(System.in);
    System.out.println("Type in number of students");
    students = sc.nextInt();

    name = new String[students];
    korean = new int[students];
    math = new int[students];
    english = new int[students];
    sum = new int[students];
    average = new double[students];
    rank = new int[students];

    for (int i = 0; i < students; i++) {
        System.out.println("Type name");
        name[i] = sc.next();
        System.out.println("Type Korean score");
        korean[i] = sc.nextInt();
        System.out.println("Type math score");
        math[i] = sc.nextInt();
        System.out.println("Type English score");
        english[i] = sc.nextInt();

        sum[i] = korean[i] + math[i] + english[i];
        average[i] = sum[i] / 3.0;

    }

}

int stu() {
    return students;
}

int[] sum() {
    return sum;
}

}

class DataOutput {
DataInput data = new DataInput();
int sNum;
int[] rrank, sum;

DataOutput(int students, int[] sum) {
    this.sNum = students;
    this.rrank = new int[sNum];
    this.sum = sum;
}

void ranker() {

    int cnt = 1;

    for (int i = 0; i < sNum; i++) {
        for (int j = 0; j < sNum; j++) {
            if (sum[i] < sum[j]) {
                cnt++;
            }
        }
        rrank[i] = cnt;
        cnt = 1;
    }

}
}

public class Score {
public static void main(String[] args) {

    DataInput data = new DataInput();
    int sNum = data.stu();
    int[] sum = data.sum();
    DataOutput out = new DataOutput(sNum, sum);
    data.save();
    out.ranker();

    System.out.println();
    System.out.println("Name\t\tKorean  math  English \t sum  Average  Rank");
    System.out
            .println("-------------------------------------------------------");

    for (int i = 0; i < data.stu(); i++) {
        System.out.println(data.name[i] + "\t\t" + data.korean[i] + "  "
                + data.math[i] + "  " + data.english[i] + "\t"
                + data.sum[i] + "  " + data.average[i] + "  "
            + out.rrank[i]); // this is where i get an Exception
    }

}

}

因此,这是我为获得学生排名而制定的程序。但是以某种方式,当我运行代码时,我总是收到“ OutOfBoundaryException”。我检查了代码,并意识到当实例化DataOutput的新实例时,它将创建所有新数据。因此,我尝试通过设置构造函数来解决此问题。但是我仍然不能解决这个问题。我知道可以将ranker方法放入DataInput类,并且可以轻松解决问题,但是我真的想保留DataOutput类。

感谢您的时间。

PS:第98行out.rrank [i]引发异常

约翰博特

studentssave()调用方法之前,不会设置您的字段然后sNumin的值main0

将顺序更改main为:

DataInput data = new DataInput();
data.save();// <--
int sNum = data.stu();
int[] sum = data.sum();
DataOutput out = new DataOutput(sNum, sum);
out.ranker();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何解决此错误?

来自分类Dev

如何解决此错误?

来自分类Dev

如何解决此错误?

来自分类Dev

如何解决此错误:分段错误?

来自分类Dev

如何解决此错误--dbWriteTable()

来自分类Dev

如何解决此ExpectationNotMetError错误

来自分类Dev

在MiniZinc中如何解决此错误?

来自分类Dev

如何解决此OOP错误?

来自分类Dev

如何解决此rstrip属性错误?

来自分类Dev

如何解决此PHP通知错误?

来自分类Dev

如何解决此错误并安装cocoapods?

来自分类Dev

如何解决此ExpectationNotMetError错误

来自分类Dev

您如何解决此错误

来自分类Dev

如何解决此属性错误?

来自分类Dev

如何解决此OOP错误?

来自分类Dev

如何解决此Eclipse错误?

来自分类Dev

如何解决此验证错误?

来自分类Dev

如何解决此httpProvider错误?

来自分类Dev

如何解决此linphone $ make错误?

来自分类Dev

如何解决此JTextArea格式错误?

来自分类Dev

此查询中的错误:如何解决?

来自分类Dev

如何解决此升级错误?

来自分类Dev

如何解决此错误?“ assign”附近的语法错误

来自分类Dev

如何解决有此makeHttpRequest错误的错误?

来自分类Dev

在ubuntu上安装devstackkg时如何解决此错误

来自分类Dev

如何解决magento1.9.1.0此错误

来自分类Dev

从Gradle发布到Nexus时如何解决此错误

来自分类Dev

如何解决Java 8中的此错误?

来自分类Dev

如何解决此边缘迭代器分配错误?