Как заставить сканер сканировать все элементы массива на java

#java #arrays #java.util.scanner

Вопрос:

Вот в чем вопрос: создайте массив строк и назначьте ему 5 имен. Спросите пользователя, как его зовут, если его имя совпадает с тем, которое уже есть в списке, сделайте что-нибудь. Проявите творческий подход!, используйте цикл для каждого, чтобы напечатать каждое имя в массиве с пробелом между каждым индексом.

Это то, что у меня есть до сих пор. Одна из проблем, с которой я сталкиваюсь, заключается в том, что сканер сравнивает входные данные только с первым именем в массиве, а не с остальными.

 public static void main(String[] args) {     String[] names = {"Jose", "Alex", "Steven", "Sky", "Ana"};   Scanner scan = new Scanner(System.in);  System.out.println("What is your name? ");    String input = scan.next();    for (String n:names) {  if (n.equalsIgnoreCase(input)) {  System.out.print("Hooray! Your odds of finding a keychain with your name on it are high! =) ");  }      else {   System.out.print("Welcome to the rare names club!!! =D " );  System.out.print(names   " ");    }  break;    }  } }      

Не стесняйтесь комментировать любые другие проблемы, которые вы видите. Я новичок в этом, и я был бы признателен за обратную связь. Тнх

Комментарии:

1. Я думаю, что вы должны использовать a for-loop для объединения имен вместе, когда у вас нет совпадения (вместо System.out.print(names " "); ) (или вы могли бы просто System.out.print напечатать каждое из них в одной строке).

Ответ №1:

Может быть, это будет полезно. Я думаю, что «перерыв» называется преждевременным. Есть много способов решить эту проблему, но я использовал логическое значение, чтобы определить, было ли найдено имя. Затем я использовал логическое значение после цикла, чтобы определить, что печатать.

 public static void main(String[] args) {  String[] names = {"Jose", "Alex", "Steven", "Sky", "Ana"};   Scanner scan = new Scanner(System.in);  System.out.println("What is your name? ");   String input = scan.next();  boolean isFound = false;  for (String n:names) {  if (n.equalsIgnoreCase(input)) {  isFound = true;  break;  }  }  if (isFound) {  System.out.print("Hooray! Your odds of finding a keychain with your name on it are high! =) ");  } else {  System.out.print("Welcome to the rare names club!!! =D " );  System.out.print(names   " ");  }  }