Как вернуть void методы в Java? - PullRequest
0 голосов
/ 05 мая 2018

Я действительно изо всех сил пытаюсь найти, как сделать назначение класса. Я должен использовать это утверждение:

public static void getExamData(char responses[])

для получения данных экзамена по 20 ответам на вопросы. Тем не менее, я запутался, потому что вы не можете вернуть значения в пустые методы? Как я собираюсь вернуть эти данные на главную?

Вот код

import java.util.Scanner;
public class Hwk11 {
public static void main(String args[])
{

    final int PASSING_SCORE = 15;
    char[] answerKey = 
    { 
        'B', 'D', 'A', 'A', 'C', 'A', 'B', 'A', 'C',
        'D', 'B', 'C', 'D', 'A', 'D', 'C', 'C', 'B',
        'D', 'A' };     
    }
    //more code here that uses the responses[] array to do more things like display info
}

public static void getExamData(char responses[])
{
    for(int index = 0; index < 20; index++)
    {
        Scanner keyboard = new Scanner(System.in);
        System.out.print("Enter " + index + ": ");
        responses[index] = keyboard.next().charAt(0);
    }

}

1 Ответ

0 голосов
/ 05 мая 2018

Когда вы передаете ссылку на массив в public static void getExamData(char responses[]), любые изменения, сделанные в массиве, будут сохранены.

Таким образом, вы получите ответ в массиве после выполнения вашей функции.

Обратите внимание, что когда вы объявляете char[] response = new char[], переменная response на самом деле не хранит содержимое массива, но хранит ссылку на массив.

Когда вы изменяете, например, response[0], вы изменяете содержимое массива, но ссылка на массив (переменная response) не изменяется.

Следовательно, после выполнения функции вы можете использовать переменную response для доступа к измененному содержимому массива.

...