System.out.println("请输入学生姓名,java、html、sql的成绩(”,“号分开)");
String info=reader.next();
String[] a=info.split(",");
this.name=a[0];
this.java=Double.parseDouble(a[1]);
this.html=Double.parseDouble(a[2]);
this.sql=Double.parseDouble(a[3]);
this.sumScore=this.java+this.html+this.sql;
this.avgScores=Math.round((this.sumScore/3)*10)/10.0;
"请输入学生姓名,java、html、sql的成绩(”,“号分开)
你自己要求输入四项信息,你少输入了一项,或者中间有某个逗号不是半角逗号
该回答引用GPTᴼᴾᴱᴺᴬᴵ
这个错误是由于数组越界引起的。具体来说,你在代码中使用了一个数组a,其中包含了从用户输入中获取的信息。然后你试图使用a数组的第3个元素(即a[3]),但实际上a数组的长度只有3,因此第3个元素是不存在的,导致了越界错误。
-
解决这个问题的方法是,在访问a数组的元素之前,先确保该元素的下标不会越界。在这个例子中,你可以使用a数组的长度来检查是否越界,如下所示:
System.out.println("请输入学生姓名,java、html、sql的成绩(”,“号分开)");
String info = reader.next();
String[] a = info.split(",");
if (a.length < 4) {
System.out.println("输入信息不完整!");
} else {
this.name = a[0];
this.java = Double.parseDouble(a[1]);
this.html = Double.parseDouble(a[2]);
this.sql = Double.parseDouble(a[3]);
this.sumScore = this.java + this.html + this.sql;
this.avgScores = Math.round((this.sumScore / 3) * 10) / 10.0;
}
这里添加了一个if语句,检查a数组的长度是否小于4,如果小于4,则说明输入的信息不完整,需要提示用户重新输入。否则,才可以访问a数组的第4个元素(即a[3])。
System.out.println("请输入学生姓名,java、html、sql的成绩(以逗号分隔)");
String info = reader.nextLine();
String[] a = info.split(",");
if (a.length < 4) {
System.out.println("输入有误,请重新输入");
} else {
this.name = a[0];
this.java = Double.parseDouble(a[1]);
this.html = Double.parseDouble(a[2]);
this.sql = Double.parseDouble(a[3]);
this.sumScore = this.java + this.html + this.sql;
this.avgScores = Math.round((this.sumScore / 3) * 10) / 10.0;
}
你应该输入4项,结果只输入了3项