以下是按顺序显示多项选择题的代码。 它显示一个问题,得到答案并检查是否正确。
public static void Rap() {
Scanner input = new Scanner(System.in);
int correct = 0;
//1
System.out.println("Complete the lyrics(hint travis scott): 'dont you open up that... \n A.can of coke \n B.window \n C. back door \n D. water bottle ");
String x = input.next();
if (x.equalsIgnoreCase("b")) {
System.out.println("Correct");
correct++;
}
if (x.equalsIgnoreCase("a")) {
System.out.println("incorrect");
}
if (x.equalsIgnoreCase("c")) {
System.out.println("incorrect");
}
if (x.equalsIgnoreCase("d")) {
System.out.println("incorrect");
}
//Same for other questions
System.out.println("You got " + correct++ + "/15 good or bad job i guess");
请建议如何随机化此流程?
答案 0 :(得分:1)
看起来你是编程的初学者,太棒了!
从您的代码中我理解的是:您向用户显示了n
个问题,并且您希望保留正确答案的数量。
从算法,
for every question in n questions,
display one question
read the input
if input is correct, increment the correct count
display correct/incorrect
go to next question
<强>解决方案:强> 这个答案可能看起来很复杂,但相信我,你会在这里学到很多东西。
首先,创建一个类来存储您的问题和正确的答案选项。
class Question {
/*Read about private access specifier and getter/setter methods*/
String question;
String correctOption;
public Question(String question, String correctOption) {
this.question = question;
this.correctOption = correctOption;
}
}
其次,创建这些问题对象的列表(了解数组http://www.c-sharpcorner.com/UploadFile/0c1bb2/login-page-in-Asp-Net-C-Sharp-web-application-using-stored-proce/和列表here)
List<Question> allQuestions = new ArrayList<Question>();
allQuestions.add(new Question("YOUR_QUESTION", "CORRECT_OPTION"));
/*Example:*/
allQuestions.add(new Question("Complete the lyrics(hint travis scott): 'dont you open up that... \n A.can of coke \n B.window \n C. back door \n D. water bottle", "b"));
/* TODO do this for all the 15 questions*/
第三次,随机播放Question
中的allQuestions
个对象
import java.util.Collections
Collections.shuffle(allQuestions);
最后,请按照上述算法进行操作:
//TODO prepare allQuestions as explained above
for (int i=0; i < allQuestions.size(); i++) {
Question curQuest = allQuestions.get(i);
System.out.println(curQuest.question)
String ans = input.next();
if(ans.equalsIgnoreCase(curQuest.correctOption)) {
System.out.println("Correct");
correct++;
} else {
System.out.println("incorrect");
}
}
System.out.println("You got "+ correct++ +"/15 good or bad job i guess");