怎么保证在阵列中两次被问到什么?

时间:2016-11-12 21:36:32

标签: java arrays

我有一项任务,我必须在美国首都创建一个测验。我必须从输入文件中读取并将状态名称和大写数据存储到数组中。然后我必须问用户___的资本是什么。它随机从数组中提取状态名称。

我完成了测验但是遇到了一个问题。我如何确保两次不问任何问题? 例如,对于程序的每次运行,如果用户被问及俄亥俄州的首都是什么,那么就不应再问俄亥俄州了。

如果询问有关所有州的问题,程序应自动显示测验结果并终止。我该怎么做呢?谢谢你的帮助。

一切正常我只需要将这一要求添加到其中。我总共有三个班级,但我只给了你自己设置测验的课程:

public void takeQuiz() throws FileNotFoundException
{
    Scanner check = new Scanner(System.in);

    int runThrough = 0;
    int count = 0;
    double right = 0.0;
    String next = "";
    Random rand = new Random();
    Collections.shuffle(list);
    int ques = 0;

    while (runThrough == 0 && ques < 50)
    { System.out.print("What's the capital of " + list.get(ques).getName()
            + "? (STOP to quit) ");

        if (next.equals("STOP"))
        {
            runThrough++;
        }
        else 
        {
            if (next.equals(list.get(ques).getCapital()))
            {
                System.out.println("Right!");
                right++;
                count++;
            }
            else
            {
                System.out.println("No, the answer is "
                    + list.get(ques).getCapital());
                count++;
            }
        }

        ++ques;
    }

1 个答案:

答案 0 :(得分:0)

这是最简单的方法。请记住,因为不能重复任何问题,最多可以提出50个问题。

Random rand = new Random();
Collections.shuffle(list);

int ques = 0;
while (runThrough == 0 && ques < 50) {
    System.out.print("What's the capital of " + list.get(ques).getName()
        + "? (STOP to quit) ");

    // Your other stuff remains as is, just update
    // list.get(ques).getCapital()
    //           ^^

    ++ques;
}

您还需要import java.util.*;

解释:随机播放您的问题列表,然后按新订单提出这些问题。