Java 使用数组调用方法时出现问题

Java 使用数组调用方法时出现问题,java,arrays,class,methods,Java,Arrays,Class,Methods,我是Java新手,刚刚开始了我的第一个半认真的任务。我相信我的大部分代码都在工作,唯一的问题是因为我一直在使用类,我似乎不能调用一个在我的主类中使用数组的方法。我想调用的所有其他方法似乎都有效。我想知道是否有人对此有任何解释或简单的解决办法 提前感谢您花时间研究,非常感谢 import java.util.Scanner; public class GeographyQuizMain { public static void main(String[] args) {

我是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");
    }
import java.util.Scanner;
公共类地理图
{
公共静态void main(字符串[]args)
{
takequick();
}
公共静态无效测验(问题[][]问题)
{
智力得分=0;
RandomNumber randomQuestion=新的RandomNumber();
//用户选择类别
int cat=pickCatergory();
//问10个问题
对于(int i=0;i<10;)
{
扫描仪应答选项=新扫描仪(System.in);
问题。骰子();
int q=(randomQuestion.dice()-1);
//检查问题是否与以前的问题相同
如果(!问题[cat][q].beenAsked)
{
问题[cat][q].beenAsked=true;//将问题状态更改为beenAsked
System.out.println(问题[cat][q].promt);
字符串answer=answerChoice.nextLine();
System.out.println(“\n您选择:“+answer+”\n正确答案是:“+questions[cat][q]。answer+”\n”);
如果(回答.等于(问题[cat][q].回答))
{
分数++;
}
i++;
}
}
System.out.println(“测验到此结束!\n”
+“你得到”+分数+“/10”);
}

您调用了您的方法
takequick()
而没有实际提供其参数
问题[][]问题
您调用了您的方法
takequick()
而没有实际提供其参数
问题[][]问题
您的问题在于调用本身

这一行
publicstaticvoidtakequick(问题[][]问题)
说明该方法将接受名为Question的对象的二维数组([]])。 另一方面,您的调用-
takequick();
不会通过这样的数组

您应该初始化这样的数组,使其编译并将其传递给函数。

问题[][]问题数组=GenerateQuestionArray();//您应该编写此方法
小测验(问题阵列);


正如你所说的,很明显你是Java新手,我强烈建议你阅读课堂上提供给你的说明和相关信息。我敢打赌,其中涵盖了对象初始化、方法和数组的详细信息。

你的问题在于调用本身

这一行
publicstaticvoidtakequick(问题[][]问题)
说明该方法将接受名为Question的对象的二维数组([]])。 另一方面,您的调用-
takequick();
不会通过这样的数组

您应该初始化这样的数组,使其编译并将其传递给函数。

问题[][]问题数组=GenerateQuestionArray();//您应该编写此方法
小测验(问题阵列);


正如你所说的,很明显你是Java新手,我强烈建议你阅读课堂上提供给你的说明和相关信息。我敢打赌,对象初始化、方法和数组的细节都包含在这里。

在你的方法测试()中,你的方法调用似乎有问题;正在使用二维数组进行提问,但在调用时您没有提供该参数,因此编译器无法找到该方法。 这就是问题所在

试着这样使用,这对你来说是一个简单的例子。用你的实际值替换它

字符串[][]问题=新字符串[3][3]

测验(问题)


这将起作用。

在您的方法takequick()中,您的方法调用的问题似乎是采用二维数组进行提问,但在调用时您没有提供该参数,因此编译器无法找到该方法。 这就是问题所在

试着这样使用,这对你来说是一个简单的例子。用你的实际值替换它

字符串[][]问题=新字符串[3][3]

测验(问题)


这将起作用。

向我们展示你的
问题中有什么
类展示你的
问题中有什么