[英]Using variables declared inside the IF statement
我刚刚在大学上过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);
所以基本上,我想使用IF中的totalGPA,semtaken,semcode和GPA。 如何在不显示错误“找不到变量”的情况下使用它们? 我无法在IF之前初始化数组,因为我不知道其大小。 用户输入大小,因此必须在IF内。
您无法分配它,但可以对其进行介绍。
int[] list = null;
if (...) {
list = new int[10];
}
Do what so ever with list.
您可以在if之外定义它:
GPA[] array = null; //or new GPA[0];
if (...) {
array = new GPA[x];
}
只需在if
之前在if
之外声明(但不要初始化)您需要的变量。 例如
int semtaken;
if (opt == 1) {
...
semtaken = ...;
...
}
foo(semtaken);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.