Я довольно новичок в массивах и методах, и я видел эту ошибку, повторяющуюся через несколько программ: error '[' expected.Array in Method Header: error ']' expected (Java)
В каждом случае кажется, что он исправляет себя, поскольку я настраиваю что-то еще, но в этом конкретном случае я полностью в тупике.
Кстати, я использую несколько методов и массивов для создания викторины (прежде чем вы спросите, да, это задание, и я согласен, список - лучший способ справиться с этими данными - но это не опция).
Возможно, что я не передаю массивы правильно между методами, так как я немного мутный в этом процессе. По моему мнению, для отправки/получения (т. Е. Импорта/экспорта) массива или другой переменной между методами я должен объявить эту переменную/массив в параметрах заголовка метода.
import java.util.Scanner;
public class H7pseudo
{
public static void main(String[] args)
{
//call getAnswerkey method
getAnswerkey(answerkey[i]);
//call getAnswers method
getAnswers(answers[i]);
//call passed method? necessary or no?
boolean passed = passed(answerkey[i], answers[i], qMissed[i], points);
//Print results of grading
if (passed)
{
System.out.println("Congratulations! You passed.");
}
else
{
System.out.println("Try again, sucka. You FAILED.");
}
//call totalPoints
totalIncorrect(points);
//call questionsMissed
questionsMissed(qMissed[i]);
}
//get answer key (create answerkey array & export)
public static void getAnswerkey(answerkey[i])
{
//create answerkey array here
char[] answerkey;
//determine number of questions (indices)
answerkey = new char[20];
//input values (correct answers) for each index
//for our purposes today, the answer is always 'c'.
for (int i = 0; i <=20; i++)
{
answerkey[i] = 'c';
}
}
//get student answers (create answers array & export)
public static void getAnswers(answers[i])
{
//initialize scanner for user input
Scanner scan = new Scanner(System.in);
//create answer array here
char[] answers;
//determine number of questions (indices)
answers = new char[20];
//prompt for user input as values of each index
for (int i = 0; i <= 20; i++) {
answers[i] = scan.nextChar();
}
}
//grade student answers (import & compare index values of arrays:answers&answerkey
//create & export qMissed array
public static boolean passed(answerkey[i], answers[i], qMissed[i], points)
{
int points = 0;
//create new array: qMissed
boolean[] qMissed;
//determine number of questions to be graded
qMissed = new boolean[20];
//initialize values for array
for (int i = 0; i <= 20; i++) {
qMissed[i] = false;
}
//cycle through indices of answerkey[i] & answers[i];
for (int i = 0; i =< 20; i++)
{
if (answers[i] == answerkey[i])
{
correct = true;
points = points+1;
qMissed[i] = true;
}
else {
qMissed[i] = false;
}
}
//evaluate whether or not the student passed (15+ correct answers)
if (points >= 15)
{
passed = true;
}
else
{
passed = false;
}
return passed;
}
public static void totalIncorrect(points)
{
int missed = 20 - points;
System.out.println("You missed " + missed + " questions.");
}
public static void questionsMissed(qMissed[i])
{
// for each index of the array qMissed...
for (int i = 0; i < qMissed.length; i++)
{
//...print correct and false answers.
system.out.println(i + ": " + qMissed[i] + "\n");
}
}
}
Что вы думаете? 'Public static void getAnswerkey (answerkey [i])' должен делать? –
Возможно, вы захотите рассмотреть циклы для инициализации вместо тех массивных блоков инициализации ... – awksp
@Sotirios Delimanolis: Идея заключается в том, что getAnswerkey устанавливает массив, который содержит правильное значение (ответ) для каждого индекса (вопроса). Я поставил его в методе, чтобы все было организовано и аккуратно. Кроме того, по моей неопытности я немного склонен вкладывать массив, который хочу разделить между методами в «public main» ... – corvidia