Я делаю приложение, которое позволяет людям делать опросы. Моя идея состоит в том, чтобы позволить людям вводить неограниченный выбор для вопроса и сигнализировать, когда они закончат с этим вопросом, нажав Enter на новой строке, после чего я позволю им ввести следующий вопрос и выбор этого вопроса. Я подумал, что нажатие Enter на пустой строке приведет к нулю, и записал условие цикла while для разрыва на ноль, но, как показано ниже, код не обнуляется, но дает право запрашивать у пользователей больше выбор. Тогда я подумал, что, может быть, пустая строка на самом деле "" вместо нуля. Но когда я это делаю ... NullPointerException. Я надеюсь, что здесь есть смысл.
По сути, вопрос в том, как сделать разрыв внутреннего цикла и перейти к следующей итерации внешнего цикла?
Спасибо!
public class Survey implements Serializable {
String title = "";
ArrayList<Question> questions;
String surveyFileName;
//survey entry code
//entry is a Scanner defined in the Main class
while ((currentQn.questionContent = (Main.entry.nextLine())).equals("") == false) {
currentQn.choices.clear();
System.out.println("Please enter the text of question " + currentQnNo + ": ");
String currentChoice = "";
int currentChoiceNo = 1;
System.out.println("Please enter choice " + currentChoiceNo + " for question " + currentQnNo + ": ");
while ((currentChoice = (Main.entry.nextLine())) != null) {
System.out.println("Please enter choice " + currentChoiceNo + " for question " + currentQnNo + ": ");
currentQn.choices.add(currentChoice);
currentChoiceNo++;
}
currentQnNo++;
questions.add(currentQn);
}
и вот реализация Вопроса:
package surveyor;
import java.io.Serializable;
import java.util.*;
class Question implements Serializable {
public String questionContent = ""; //initialize these so no NPEs
public ArrayList<String> choices = new ArrayList<String>();
}