Java 当我在数组大小中输入数字时,项目工作正常,但当我输入int subNo时,不会给我错误

Java 当我在数组大小中输入数字时,项目工作正常,但当我输入int subNo时,不会给我错误,java,arrays,Java,Arrays,我是这个领域的新手 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

我是这个领域的新手

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);

}
封装测试;
导入java.util.Scanner;
公共课科目{
公共静态void main(字符串[]args){
System.out.println(“请输入主题号”);
subNo=scan.nextInt();
System.out.println(“受试者编号:“+subNo”);
对于(int i=0;i
您必须在读取
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
变量之后定义
subName
变量,因为这将在输入值后分配,例如:

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();
    }
}
公共静态int subNo;
静态扫描仪扫描=新扫描仪(System.in);
公共静态void main(字符串[]args){
System.out.println(“请输入主题号”);
subNo=scan.nextInt();
System.out.println(“受试者编号:“+subNo”);
String[]subName=新字符串[subNo];
对于(int i=0;i
这里有我遗漏的问题吗?
公共静态字符串[]子名称=新字符串[subNo]
-
subNo
在此声明中为
0
。感谢您回复YCF\L,它帮助我和我学到了一些新的东西欢迎您@Hemasharshar享受java好运(ya akhi al-karim);)谢谢你回复JUAN CALVOPINA M,你的信息对我很有帮助