在一个学习程序中(我对此知之甚少。它是为了学习 java)输出不会停止在我称之为 getQ 的方法的第二次迭代中获得输入,因为这是一个 pub quiz。
这是代码:
import java.util.Scanner;
public class pubQuizArray {
private static Scanner kb = new Scanner (System.in);
static String[] questions;
static String[][] answers;
static char ans;
static char yn;
static char[] correctAns;
static int questionNum;
static int questionNumArray;
static int numQ;
static int score;
public static void writeQuiz()
{
getQNum();
getQ();
}
public static void getQNum()
{
System.out.println("How many Questions?");
numQ = kb.nextInt();
questions = new String[numQ];
}
public static void getAns()
{
answers = new String[numQ][6];
System.out.println("What are the answers?");
System.out.print("a: ");
answers[questionNum][0] = kb.nextLine();
System.out.print("b: ");
answers[questionNum][1] = kb.nextLine();
System.out.print("c: ");
answers[questionNum][2] = kb.nextLine();
System.out.print("d: ");
answers[questionNum][3] = kb.nextLine();
correctAns = new char[numQ];
System.out.println("What is the correct Answer?");
correctAns[questionNum] = kb.next().charAt(0);
}
public static void getQ()
{
questionNum = 0;
System.out.println("What is the First Question?");
questions[questionNum] = kb.nextLine();
questions[questionNum] = kb.nextLine();
getAns();
questionNum ++;
while(questionNum < numQ)
{
System.out.println("What is the next Question?");
questions[questionNum] = kb.nextLine();
getAns();
questionNum ++;
}
}
public static void askQ()
{
questionNum = 0;
score = 0;
do
{
System.out.println("Q" + (questionNum + 1) +": " + questions[questionNum]);
System.out.println("a: " + answers[questionNum][0]);
System.out.println("b: " + answers[questionNum][1]);
System.out.println("c: " + answers[questionNum][2]);
System.out.println("d: " + answers[questionNum][3]);
ans = kb.next().charAt(0);
if(ans == correctAns[questionNum])
{
System.out.println("That was correct");
score ++;
}
else
{
System.out.println("That was incorrect");
}
questionNum ++;
}while(questionNum < numQ);
}
public static void menu()
{
System.out.println("Would you like to write a new Quiz? y/n");
yn = kb.next().charAt(0);
while(yn == 'y')
{
writeQuiz();
System.out.println("Would you like to play the Quiz? y/n");
yn = kb.next().charAt(0);
while(yn == 'y')
{
askQ();
System.out.println("Would you like to play again? y/n");
yn = kb.next().charAt(0);
}
}
}
public static void main(String[] args)
{
menu();
}
}
这是输出
Would you like to write a new Quiz? y/n
y
How many Questions?
2
What is the First Question?
asdf
asdf
What are the answers?
a: asd
b: as
c: a
d: adfs
What is the correct Answer?
a
What is the next Question?
What are the answers?
a:
正如您所看到的,当它询问第二个问题是它不允许输入时。请记住,这只是一个学习java的项目。