使用IF语句中声明的变量

1 java

我刚刚上大学的java编程课程.我们被要求做一个项目.但是,我在这里面临两难困境,一些援助将受到高度赞赏.

        if (opt == 1) {
            System.out.println("Enter your name:");
            name1 = keyboard.next();
            name2 = keyboard.next();
            System.out.println("Enter your ID:");
            ID = keyboard.nextInt();
            System.out.println("Enter semesters taken:");
            semtaken = keyboard.nextInt();
            int[] semcode = new int[semtaken];
            int[] subjectTaken = new int[semtaken];
            double[] GPA = new double[semtaken];
            double finalGPA;
            for (i = 0; i < semtaken; i++) {
                System.out.println("Enter semester code for semester no " + (i + 1));
                semcode[i] = keyboard.nextInt();
                System.out.println("Enter subjects taken:");
                subjectTaken[i] = keyboard.nextInt();
                String[][] subject = new String[subjectTaken[i]][4];
                int subjectsTakenNO = subjectTaken[i];

                System.out.println("Enter your subject code, hours, letter");
                for (j = 0; j < subjectTaken.length; j++) {
                    for (int k = 0; k < 3; k++) {
                        subject[j][k] = keyboard.next();
                    }

                }

                GPA[i] = getGPA(subject, subjectsTakenNO);
                totalGPA += GPA[i];
                finalGPA = totalGPA / semtaken;
                System.out.println("Your GPA for this term is" + getGPA(subject, subjectsTakenNO));
            }
            opt1 = true;
        } /* Here is the PROBLEM. I want to get I want to get semtaken and gpa but it shows an
             error (Variable not found) */ 
        else if (opt == 2 && opt1) {
            summary(name1, name2, ID, GPA, totalGPA, semtaken, semcode);
Run Code Online (Sandbox Code Playgroud)

所以基本上,我想使用IF中的totalGPA,semtaken,semcode和GPA.如何在不显示"未找到变量"错误的情况下使用它们?我不能在IF之前初始化数组,因为我不知道它的大小.用户输入大小,因此必须在IF内.

har*_*ism 5

你不能分配它,但你可以介绍它.

int[] list = null;
if (...) {
    list = new int[10];
}
Do what so ever with list.
Run Code Online (Sandbox Code Playgroud)