#java
#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 amp;amp; opt1) {
summary(name1, name2, ID, GPA, totalGPA, semtaken, semcode);
Итак, в принципе, я хочу использовать totalGPA, semtaken, semcode и GPA, которые находятся внутри IF. Как я могу использовать их, не показывая мне ошибку «Переменная не найдена»? Я не могу инициализировать массив перед IF, потому что я не знаю его размер. Пользователь вводит размер, поэтому он должен быть внутри IF.
Комментарии:
1. Я попробовал приведенные ниже решения, я ценю помощь, НО значения в конце отображаются как ноль. Я хочу получить значения, которые были присвоены инструкцией «IF».
Ответ №1:
Вы не можете выделить его, но вы можете ввести его.
int[] list = null;
if (...) {
list = new int[10];
}
Do what so ever with list.
Комментарии:
1. это вызовет «не инициализировано» при использовании вне if
Ответ №2:
Вы можете определить это вне if:
GPA[] array = null; //or new GPA[0];
if (...) {
array = new GPA[x];
}
Комментарии:
1. Да, но значения были бы равны НУЛЮ.
2. Да .. но если вы назначите что-нибудь, что они выиграли
Ответ №3:
Просто объявите (но не инициализируйте) нужные вам переменные вне if
перед if
. Например
int semtaken;
if (opt == 1) {
...
semtaken = ...;
...
}
foo(semtaken);