В вашем случае у вас есть четыре допустимых входа, а именно "A", "B", "C", "D"
.Это легко может быть реализовано только с использованием логических операторов;а именно, условие петли - когда ваш ввод ни , ни "A"
, ни "B"
, ни "C"
, ни "D"
.
Scanner input = new Scanner(System.in);
System.out.println("Enter a selection (NOR): ");
String string1 = input.next();
while ( !string1.equals("A")
&& !string1.equals("B")
&& !string1.equals("C")
&& !string1.equals("D")) {
System.out.println("Enter again (NOR): ");
string1 = input.next();
}
input.close();
Но как насчет ситуаций, когда есть произвольно, но конечное число допустимых входных данных , например, наличие всех букв венгерского алфавита?Набор может быть лучшим вариантом.
Scanner input = new Scanner(System.in);
// Either manually or use a method to add admissible values to the set
Set<String> admissible = new HashSet<String>();
admissible.add("A");
admissible.add("B");
admissible.add("C");
admissible.add("D");
// ... and so on. You can also use helper methods to generate the list of admissibles
// in case if it is in a file (such as a dictionary or list of words).
System.out.println("Enter a selection (Set): ");
String string1 = input.next();
// If input string1 is not found anywhere in the set
while (!admissible.contains(string1)) {
System.out.println("Enter again (Set): ");
string1 = input.next();
}
input.close();