为什么我的程序有越界异常? import java.util.Scanner; 公务舱中层{ 扫描仪扫描=新扫描仪(System.in); 国际学生; int arr[][]=新int[学生][5]; 字符串str[]={“科学”、“数学”、“英语”}; 公开无效分数(){ System.out.println(“多少学生?”); student=scan.nextInt(); 对于(int i=0;i
实际上,在为什么我的程序有越界异常? import java.util.Scanner; 公务舱中层{ 扫描仪扫描=新扫描仪(System.in); 国际学生; int arr[][]=新int[学生][5]; 字符串str[]={“科学”、“数学”、“英语”}; 公开无效分数(){ System.out.println(“多少学生?”); student=scan.nextInt(); 对于(int i=0;i,java,Java,实际上,在arr中使用student之前,您没有为student赋值,因此默认情况下,java将student的值赋值为0 要解决此问题,您只需在初始化arr之前输入“多少学生?”即可,如下所示: import java.util.Scanner; public class Mid { Scanner scan = new Scanner(System.in); int student; int arr [][]=new int[student][5]; Str
arr
中使用student
之前,您没有为student
赋值,因此默认情况下,java将student
的值赋值为0
要解决此问题,您只需在初始化arr
之前输入“多少学生?”即可,如下所示:
import java.util.Scanner;
public class Mid {
Scanner scan = new Scanner(System.in);
int student;
int arr [][]=new int[student][5];
String str[]= {"science","math","english"};
public void score() {
System.out.println("how many student?");
student=scan.nextInt();
for(int i=0;i<student; i++) {
for(int j=0;j<3;j++) {
System.out.println("input"+(i+1)+"student "+str[j]+"score");
arr[i][j]=scan.nextInt();
}
}
}
import java.util.Scanner;
公务舱中层{
扫描仪扫描=新扫描仪(System.in);
国际学生;
System.out.println(“多少学生?”);
student=scan.nextInt();
int arr[][]=新int[学生][5];
字符串str[]={“科学”、“数学”、“英语”};
公开无效分数(){
对于(int i=0;i您分配一个数组,然后询问用户该数组需要有多大。这需要以相反的顺序进行考虑如果studunt
为空会发生什么,然后尝试使用int arr[][]=new int[student][5];
。是的,它将是一个长度为0的数组。首先定义student
,或者移动int arr[[]
在设置student的值之后设置。int student=scan.nextInt();
会更好
import java.util.Scanner;
public class Mid {
Scanner scan = new Scanner(System.in);
int student;
System.out.println("how many student?");
student=scan.nextInt();
int arr [][]=new int[student][5];
String str[]= {"science","math","english"};
public void score() {
for(int i=0;i<student; i++) {
for(int j=0;j<3;j++) {
System.out.println("input"+(i+1)+"student "+str[j]+"score");
arr[i][j]=scan.nextInt();
}
}
}