2017-12-13 30 views
0

私はJavaに関連していて、最初の半重大割り当てを開始しました。私は自分のコードのほとんどが動作していると確信していますが、唯一の問題はクラスを使用していたためです。メインクラスに配列を使用するメソッドを呼び出すことはできません。私が呼びたい他の方法はすべて動作するようです。私は誰かがこれに対する説明や簡単な解決策を持っているのだろうか?配列を使ってメソッドを呼び出す際の問題

お時間をいただきありがとうございます。本当にありがとうございます。

import java.util.Scanner; 

public class GeographyQuizMain 
{ 

    public static void main(String[] args) 
    { 
     takeQuiz(); 
    } 

    public static void takeQuiz(Question[][] questions) 
    { 

     int score = 0; 
     RandomNumber randomQuestion = new RandomNumber(); 
     //user chooses catergory 
     int cat = pickCatergory(); 
     //ask 10 questions 
     for(int i = 0; i < 10;) 
     { 
      Scanner answerChoice = new Scanner(System.in); 
      randomQuestion.dice(); 
      int q = (randomQuestion.dice() - 1); 
      //checks to see if question as been asked before 
      if (!questions[cat][q].beenAsked) 
      { 
       questions[cat][q].beenAsked = true; //changes question status to beenAsked 
       System.out.println(questions[cat][q].promt); 
       String answer = answerChoice.nextLine(); 
       System.out.println("\nYou picked: " + answer + "\nThe correct answer was: " + questions[cat][q].answer + "\n"); 

       if(answer.equals(questions[cat][q].answer)) 
       { 
        score++; 
       } 
       i++; 
      } 
     } 
     System.out.println("That is the end of the quiz!\n" 
       + "You got " + score + "/10"); 
    } 
+0

あなたの 'Question'クラス内の内容を表示してください –

答えて

0

あなたは[Question[][] questions

1

あなたの問題は、コール自体、

このライン方法は、(2次元配列を受け入れますpublic static void takeQuiz(Question[][] questions)状態である、実際にその引数を供給することなく、あなたの方法takeQuiz()呼ばれています] [])という名前のオブジェクトの名前です。 一方、あなたの電話番号 - takeQuiz();はそのような配列を渡しません。

このような配列を初期化して、このコンパイルを行い関数に渡す必要があります。すなわち Question[][] questionArray = GenerateQuestionArray(); //you should write this method takeQuiz(questionArray);

あなたが述べたように、あなたはJavaを初めて使い慣れているので、指示とそれに関する授業で提供された情報を読むことを強くお勧めします。私は、オブジェクトの初期化、メソッド、配列の詳細がそこに隠されていると確信しています。

1

あなたのメソッド呼び出しでは、あなたのメソッドtakeQuiz()に問題があるようです。質問のために2次元の配列を取っていますが、呼び出し時にはそのパラメータを提供していないので、コンパイラはメソッドを見つけることができません。 それは問題です。

このようにしてみると、これは簡単な例です。これをあなたの実際の値に置き換えてください。

String [] [] questions = new String [3] [3];

takeQuiz(質問);

これは動作します。

関連する問題