我有一项任务,我必须在美国首都创建一个测验。我必须从输入文件中读取并将状态名称和大写数据存储到数组中。然后我必须问用户___的资本是什么。它随机从数组中提取状态名称。
我完成了测验但是遇到了一个问题。我如何确保两次不问任何问题? 例如,对于程序的每次运行,如果用户被问及俄亥俄州的首都是什么,那么就不应再问俄亥俄州了。
如果询问有关所有州的问题,程序应自动显示测验结果并终止。我该怎么做呢?谢谢你的帮助。
一切正常我只需要将这一要求添加到其中。我总共有三个班级,但我只给了你自己设置测验的课程:
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;
}
答案 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.*;
。
解释:随机播放您的问题列表,然后按新订单提出这些问题。