Запрос имени пользователя из массива

#java #arrays #string #if-statement

#Ява #массивы #строка #если-заявление

Вопрос:

Мне нужно создать проект, в котором только в том случае, если из заданных имен в массиве будет введено определенное имя пользователя, им будет разрешено перейти к следующим параметрам меню. Как я могу изменить свой код, чтобы сделать это? Это просто печать » Привет, Джон!» Нужна ли мне петля?

 public class Project1 {  public static void main(String[] args) {   Scanner input = new Scanner (System.in);     System.out.println("please enter your username!");    String[] username = { "John","Lucy", "Amy", "Noah", "Sam"};     Listlt;Stringgt; list = Arrays.asList(username);   if (list.contains("John")) {  System.out.println("Hello!" );  }  else if (list.contains("Lucy")) {  System.out.println("Hello!" );  }  else if (list.contains("Amy")) {  System.out.println("Hello!" );  }  else if (list.contains("Noah")) {  System.out.println("Hello" );  }  else if (list.contains("Sam")) {  System.out.println("Hello" );  }  else {   System.out.println("Please enter a valid username.");  } }  

ВОЗВРАТ:

Добро пожаловать, Для начала, пожалуйста, введите свое имя пользователя!

Привет, Джон!

Ответ №1:

Вам действительно нужен цикл, чтобы спросить пользователя, пока имя не будет действительным, do/while цикл-хороший выбор здесь

 Scanner input = new Scanner(System.in); Listlt;Stringgt; allowedUsernames = Arrays.asList("John", "Lucy", "Amy", "Noah", "Sam"); System.out.println("Welcome, To start, please enter your username!");  String name = ""; do {  if (!name.equals("")) {  System.out.println("Please enter a valid username.");  }  name = input.nextLine(); } while (!allowedUsernames.contains(name));  System.out.println("Hello!");  
 Welcome, To start, please enter your username! aa Please enter a valid username. uu Please enter a valid username. dd Please enter a valid username. John Hello!