У меня есть класс, который я написал на Java, и один из методов - getCommand ()
Цель этого метода - прочитать строку и посмотреть, что введенный пользователем соответствует любой из допустимых команд.
Вот как я написал это изначально:
public char getCommand(){
System.out.println("Input command: ");
command = input.nextLine();
while(command.length() != 1){
System.out.println("Please re-enter input as one character: ");
command = input.nextLine();
}
while( command.substring(0) != "e" ||
command.substring(0) != "c" ||
command.substring(0) != "s" ||
command.substring(0) != "r" ||
command.substring(0) != "l" ||
command.substring(0) != "u" ||
command.substring(0) != "d" ||
command.substring(0) != "k" ||
command.substring(0) != "f" ||
command.substring(0) != "t" ||
command.substring(0) != "p" ||
command.substring(0) != "m" ||
command.substring(0) != "q"){
System.out.println("Please enter a valid character: ");
command = input.nextLine();
}
fCommand = command.charAt(0);
return fCommand;
}
Теперь я вижу, что проблема в том, что, поскольку я использую оператор OR, он не выйдет из этого цикла, потому что вводимый символ не всегда будет равен одному из них. Я попытался изменить его на оператор AND, но та же проблема. Что было бы лучшим способом принять только эти конкретные символы?
Очень ценится.