1

役に立たないように思われるいくつかの応答を検索して見つけましたが、nullPointerException エラーで立ち往生しています。以下は、エラーが私の logResponse() メソッドにある私のコードです。どんな助けも大歓迎です。

import java.util.*;

public class Survey21 {

    private Scanner in = new Scanner(System.in);
    private String surveyTitle;
    private static int rID;
    private static int respondentID;
    private int[][] responses;

    //Constructors
    // Default Constructor
    Survey21() {
        surveyTitle = "Customer Survey";
    }

    // Overloaded Constructor 1
    Survey21(String title, int rID) {
        surveyTitle = title;
        rID = 0;
        generateRespondentId();
    }

    Survey21(int[][] surveyArray) {
        responses = surveyArray; // store responses
    }

    public static int getrID() {
        return rID;
    }

    public static void setRespondentID(int respondentID) {
        respondentID = rID;

    }

    public String getTitle() {
        return surveyTitle;
    }

    public void setTitle(String title) {
        surveyTitle = title;
    }

    public static int generateRespondentId() {
        rID = ++respondentID;
        return rID;
    }

    // displays name of survey and entire grid of results
    public void displaySurveyResults() {
        System.out.printf("%s\n\n", getTitle());
        logResponse();


    }

    // dispalys question number and results for that question so far
    public void displayQuestionStats(int questionNumber) {
    }

    // enter questions and store in an array of Strings
    public void enterQuestions() {
        /*String[] questions = {
         "How would you rate your online shopping experience?",
         "How satisfied was you with the purchase price?",
         "Overall how was the online checkout experience?",
         "How likely are you to recommend your friends and family to our store?",
         "How concerned are you with online credit card security?",
         "How likely are you to prefer a retail location compared to an online store?",
         };*/
        String questions[] = new String[10];

        for (int i = 0; i < questions.length; i++) {
            System.out.println("Please enter a question!");
            questions[i] = in.nextLine();
        }
        /*TEST TEST***
         System.out.print(questions[0] + "\n");
         System.out.print(questions[1] + "\n");
         System.out.print(questions[2] + "\n");
         System.out.print(questions[3] + "\n");
         System.out.print(questions[4] + "\n");
         System.out.print(questions[5] + "\n");
         System.out.print(questions[6] + "\n");
         System.out.print(questions[7] + "\n");
         System.out.print(questions[8] + "\n");
         System.out.print(questions[9] + "\n");
         */

    }

    **// enters the response in the correct grid 
    public void logResponse() {
        System.out.println("The responses are:\n");
        System.out.print("            "); // align column heads
        // create a column heading for each question
        for (int qNumber = 0; qNumber < responses[0].length; qNumber++) {
            System.out.printf("Question number %d ", qNumber + 1);
            System.out.println("Response"); // column heading 
        }
        for (int response = 0; response < responses.length; response++) {
            System.out.printf("Response %2d", response + 1);
            for (int qNumber : responses[response])// output responses
            {
                System.out.printf("%8d", qNumber);
            }
        }
    }**
}
4

2 に答える 2

2

おそらく、最初の要素の長さではなく、配列の長さが必要です。

for (int qNumber = 0; qNumber < responses.length; qNumber++) {
    System.out.printf("Question number %d ", qNumber + 1);
    System.out.println("Response"); // column heading 
}
于 2013-08-22T14:09:01.073 に答える