2016-11-20 2 views
1

Я пытаюсь написать программу Java с 2 массивами 1 для имени (String), а другой, представляющий возраст (целое число), программа должна повторять и запрашивать максимум 10 имен и возрастов каждого, тогда отображать все элементы массива, а также максимальный и минимальный возраст каждого из них, или если пользователь не вводит «done» или «DONE» в середине пути.Java итерации через массив

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

Любые предложения?

спасибо.

import java.util.Scanner; 
public class AgeName { 
    public static void main(String[] args){ 
     Scanner input = new Scanner(System.in); 

     int numTried = 1; 
     int ageTried = 1; 
     boolean stop = false; 
     String name = ""; 

     String[] num = new String[10]; 
     int[] age = new int[10]; 

     while(numTried <= 10 && ageTried <=10 && !stop){ 
      System.out.print("Enter name " + numTried + ": "); 
      name = input.nextLine(); 

      System.out.print("Now enter age of " + name + ": "); 
      int userAge = input.nextInt(); 

      if(name.toUpperCase().equals("DONE")){ 
       stop = true; 
      }else{ 
       num[numTried - 1] = name; 
       age[ageTried -1] = userAge; 
      } 

      numTried ++; 
      ageTried ++; 
     } 

     for(String output : num){ 
      if(!(output == null)){ 
       System.out.print(output + ","); 
      } 
     } 

     input.close(); 
    } 
} 
+0

Вы что, работали? – ItamarG3

ответ

1

Вы можете использовать Map<String,Integer>:

HashMap<String, Integer> map = new HashMap<String, Integer>(); 
String[] num = new String[10]; 
for (int i = 0; i < 10; i++) { 
    System.out.print("Enter name " + numTried + ": "); 
    name = input.nextLine(); 

    System.out.print("Now enter age of " + name + ": "); 
    int userAge = input.nextInt(); 
    num[i] = name; 
    map.put(name, userAge); 
} 

for (String output : num) { 
    if (!(output == null)) { 
     System.out.print(output + ","+ map.get(output)); 
    } 
} 

Map как предполагает его название позволяет отображать один тип объекта к другому. метод .put() добавляет запись, содержащую пару String и integer, и отображает строку в int.
Строка должна быть УНИКАЛЬНОЙ!

0

Вы должны спросить на любой итерации, если пользователь сделан. Например, вы можете установить строковую переменную как answer = "NO" и спросить пользователя в конце любой итерации, если он сделан. Если вы попробуете это, не забудьте заменить стоп-переменную ответом на ваше условие итерационного блока.

System.out.println("Are you done: Choose -> YES or NO?"); 
answer = input.nextLine(); 
if (answer == "YES") 
    break;