需要输入数组直到用户输入0 JAVA

时间:2012-10-23 04:45:29

标签: java arrays user-input

我需要帮助理解如何编写一个带有一定数量整数的for循环(必须是1到10),并且一旦输入0就停止输入数字(0将是最后一个数字)。到目前为止我的代码是:

   import java.util.Scanner;
   public class countNum {

      public static void main(String[] args) {

        int[] array;

        Scanner input = new Scanner(System.in);
        System.out.println ("Enter in numbers (1-10) enter 0 when finished:");

        int x = input.nextInt();

        while (x != 0) {
          if (x > 2 && x < 10) {
          //Don't know what to put here to make array[] take in the values
          }
          else
          //Can I just put break? How do I get it to go back to the top of the while loop?
        }
      }   

     }

}

我不明白如何同时初始化具有设定长度的数组,同时让扫描仪读取该未知长度的一定数量的数字,直到输入0,然后循环停止接收该数组的输入。

感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

好的,这里有更多细节: -

  • 如果您想要一个动态增加的数组,则需要使用ArrayList。你这样做: -

    List<Integer> numbers = new ArrayList<Integer>();
    
  • 现在,在上面的代码中,您可以将number读取语句(nextInt)放在while循环中,因为您需要定期阅读它。并在while循环中放入一个条件来检查输入的数字是否为int: -

    int num = 0;
    while (scanner.hasNextInt()) {
        num = scanner.nextInt();
    }
    
  • 此外,您可以自己动手。只需检查号码是否为0。如果不是0,请将其添加到ArrayList: -

    numbers.add(num);
    
  • 如果是0,请暂停你的while循环。

  • 你在while循环中不需要那个x != 0条件,因为你已经在循环中检查了它。

答案 1 :(得分:1)

在您的情况下,用户似乎可以输入任意数量的数字。对于这种情况,拥有一个数组并不理想,因为在数组初始化之前需要知道数组的大小。你有一些选择:

  1. 使用ArrayList。这是一种动态扩展的动态数据结构。
  2. 询问用户他/她将要输入的数量,并使用它来初始化阵列。
  3. 根据大小的某些假设创建一个数组。
  4. 在情况2和3中,您还需要包含一些逻辑,使程序在以下情况下停止:(1)用户输入0(2)或当用户提供的数字量超过数组。

    我建议坚持第一个解决方案,因为它更容易实现。

答案 2 :(得分:1)

我强烈建议您继续学习Java Collections。

你可以修改你的程序

import java.util.ArrayList;
import java.util.InputMismatchException;
import java.util.List;
import java.util.Scanner;

  public class arrayQuestion {

    public static void main(String[] args) {

        List<Integer> userInputArray = new ArrayList<Integer>();

        Scanner input = new Scanner(System.in);
        System.out.println("Enter 10 Numbers ");
        int count = 0;
        int x;
        try {
            do {
                x = input.nextInt();
                if (x != 0) {
                    System.out.println("Given Number is " + x);
                    userInputArray.add(x);
                } else {
                    System.out
                            .println("Program will stop Getting input from USER");
                    break;
                }
                count++;
            } while (x != 0 && count < 10);

            System.out.println("Numbers from USER : " + userInputArray);
        } catch (InputMismatchException iex) {
            System.out.println("Sorry You have entered a invalid input");
        } catch (Exception e) {
            System.out.println("Something went wrong :-( ");
        }

        // Perform Anything you want to do from this Array List

    }
}

我希望这能解决你的疑问...... 超出此范围,如果用户输入任何字符或上述无效输入,则需要处理例外情况