Обычно это делается, как этот
String input = "";
ArrayList<String> list = new ArrayList<String>();
while (!(input = scan.nextLine()).equals("q")) {
// store the input (example - you can store however you want)
list.add(input);
}
, но в вашем случае, вы могли бы также включать в себя список вопросов, которые вы можете переходить.
ArrayList<String> questions = new ArrayList<String>();
questions.add("q1");
questions.add("q2");
questions.add("q3");
Scanner scan = new Scanner(System.in);
String input = "";
ArrayList<String> userInput = new ArrayList<String>();
int index = 0;
// print the first question and increment the index
System.out.println(questions.get(index));
index++;
while (!(input = scan.nextLine()).equals("q")) {
// store the input (example - you can store however you want)
userInput.add(input);
// print the next question since the user didn't enter q
// if there are no questions left, stop asking
if (index == questions.size() - 1) {
break;
}
System.out.println(questions.get(index));
// keep track of the index!!
index++;
}
scan.close();
В конце вопроса, задающего вопрос, вы можете использовать значения в списке userInputs. Ответы хранятся начиная с индекса 0 и соответствуют соответствующему списку вопросов.
На стороне примечания, если вы действительно хотели обнаружить, когда пользователь нажал «q», прежде чем нажать клавишу ввода, вы можете реализовать KeyListener на кнопке q ... (однако это остановит программу каждый раз, когда действительный вход пользователя начал с водно) см http://docs.oracle.com/javase/7/docs/api/java/awt/event/KeyListener.html подробнее
Считаете ли вы, что пользователь вводит входной цикл? –
Поместите его в цикл while и выйдите, когда выполняется условие выхода (пользователь ввел «q»). Если вам нужно, чтобы он перешел к набору вопросов, вы можете перебрать список вопросов, при этом условие выхода будет либо им вводить «q», либо список исчерпан; что наступит раньше. – Carcigenicate
Вы можете написать цикл while, который будет задавать вопросы до тех пор, пока (или если) пользователь не наберет q в sc.nextline(). – wkcamp