2014-02-09 4 views
0

Я пытаюсь создать меню, в котором пользователь имеет возможность добавлять числа в массив, и технически они могут добавить количество значений, которые они хотят, но по одному за раз. Поэтому, когда они выбирают, чтобы добавить число в массив, они будут вводить одно число, а затем оно будет запрашивать меню снова. У меня возникли проблемы с добавлением числа в массив &, отображающий массив. Я добавлю два номера &, чтобы отобразить массив, чтобы посмотреть на него & Я получаю 300000000000000000000000000000000000000000000000000000000000000 из-за моего массива max, я думаю. все, что я хочу, это добавить только цифры, которые я вводил в массив, когда я хочу ввести его. & продолжают делать это оттуда.Java Array Beginner Menu

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

import java.util.*; 

public class arrayMenu 
{ 
    public static void main(String[] args) 
    { 
     Scanner kb; 
     int option; 
     kb = new Scanner(System.in); 
     option = menu(kb); 
     int[] myArray = new int[99]; 

     while (option != 6) 
     { 
     switch (option) 
     { 
      case 1: 
       myArray = newNum(kb, myArray); 
       break; 
      case 2: 
       display(myArray); 
       break; 
      case 3: 

       break; 
      case 4: 

       break; 
      case 5: 

       break; 
     } 
     option = menu(kb); 
     } 
     if (option == 6) 
     { 
     System.out.println(); 
     System.out.println("Thank you. Have a nice day."); 
     } 
    } 
    public static int menu(Scanner kb) 
    { 
     int myOption = 0; 
     while (myOption != 1 && myOption != 2 && myOption != 3 && myOption != 4 && myOption != 5 && myOption != 6) 
     { 
     System.out.println(); 
     System.out.println("Please select from the following menu choices."); 
     System.out.println(); 
     System.out.println("1. Add a number to the array \n2. Display the mean \n3. Display the median \n4. Print the array to the screen \n5. Print the array in reverse order \n6. Quit"); 
     System.out.println(); 
     System.out.print("Choice --> "); 
     myOption = kb.nextInt(); 
     kb.nextLine(); 
     if (!(myOption == 1 || myOption == 2 || myOption == 3 || myOption == 4 || myOption == 5 || myOption == 6)) 
      System.out.println("I am sorry that is an invalid menu choice.\nPlease try again"); 
     } 
     return myOption; 
    } 
    public static int intNum(Scanner kb) 
    { 
     int num = -1; 
     while (!(num >= 0)) 
     { 
     System.out.print("Please enter a non-negative integer -->"); 
     num = kb.nextInt(); 

     if (num < 0) 
      System.out.print("I am sorry that is not a non-negative integer. \n"); 
     } 
     return num; 
    } 
    public static int[] newNum(Scanner kb, int[] array) 
    { 
     for (int i = 0; i < 1; i++) 
     { 
     System.out.print("Please enter a number:"); 
     array[i] = kb.nextInt(); 
     } 
     return array; 
    } 
    public static void display(int[] array) 
    { 
     for (int myValue : array) 
     { 
     System.out.print(myValue); 
     } 
    } 

} 
+1

Java не является javascript. Вы можете удалить тег javascript из этого вопроса. – chiliNUT

+0

как бы я это исправить? Я хочу, чтобы пользователь имел полный контроль над тем, насколько велик массив, и т. Д. – user3230008

ответ

0

Ну, метод newNum выглядит очень сомнительным. Цикл будет только один раз, поскольку проверка счетчика циклов проверяет < 1. i всегда будет 0, и вы всегда будете добавлять новый номер в [0] место в массиве. У вас нет переменной текущего индекса, чтобы отслеживать, где находится ваше текущее место в массиве. Массив будет 1 int, а остальные значения будут равны 0, что похоже на то, что вы включили в проводку.

+0

Как бы я это исправил? Я хочу, чтобы у пользователя был полный контроль над тем, насколько велик массив, и т. Д. – user3230008

+0

Почему бы не использовать список целых чисел - вы можете просто добавлять числа в список и перебирать список, как только вам нужно выполнить некоторые вычисления на Это. В настоящее время вы застреваете с фиксированным размером 99. – mikemil

+0

Его назначение для массива. – user3230008