我是这个领域的新人。
package test;
import java.util.Scanner;
public class Subject {
public static void main(String [] args){
System.out.println("Please Enter Subject No");
subNo =scan.nextInt();
System.out.println("Subject No Is : " + subNo);
for (int i = 0; i < subNo; i++) {
System.out.println("Please Enter Subject Name " + (i + 1));
subName[i] = scan.next();
}
}
public static int subNo;
public static String[] subName = new String [subNo] ;
static Scanner scan = new Scanner (System.in);
}
答案 0 :(得分:0)
阅读subNo
后,您必须初始化数组:
public static String[] subName;//<---------------not initialize it here
static Scanner scan = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("Please Enter Subject No");
subNo = scan.nextInt();
subName = new String[subNo];//<------------------initialize it here
System.out.println("Subject No Is : " + subNo);
因为当您运行程序时,您的数组将使用静态subNo
进行初始化,而不是使用主要
答案 1 :(得分:0)
您必须在subName
变量之后定义subNo
变量,因为这将在输入值后分配,例如:
public static int subNo;
static Scanner scan = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("Please Enter Subject No");
subNo = scan.nextInt();
System.out.println("Subject No Is : " + subNo);
String[] subName = new String[subNo];
for (int i = 0; i < subNo; i++) {
System.out.println("Please Enter Subject Name " + (i + 1));
subName[i] = scan.next();
}
}