需要采取输入到阵列中,直至用户输入0 JAVA(Need To Take Input To Arra

2019-07-01 21:30发布

我需要帮助了解如何编写一个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,然后循环停止取入输入用于阵列。

谢谢你的帮助!

Answer 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循环。

  • 而你并不需要一个x != 0条件while循环,因为你已经在循环内检查它。



Answer 2:

在你的情况下,用户似乎可以输入任意数量的数字。 对于这种情况,具有阵列是不理想的,只是因为需要数组初始化之前被称为该数组的大小。 你有一些选择,但:

  1. 使用一个ArrayList中 。 这个动态数据结构,其动态扩展。
  2. 问用户,他/她将要进入并使用它来初始化数组数的量。
  3. 创建一个阵列上的大小一些假设基础自己。

在这两种情况2和3中,还需要包括一些逻辑,这将使程序停止时:(1)用户输入0(2),或者当数字的由用户提供的量超过阵列的大小。

我建议不粘但因为它是更容易实现第一个解决方案。



Answer 3:

我强烈建议你去得到一些手与Java集合。

你可以修改你的程序如

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

    }
}

我希望这将解决您的疑问..超出这个u需要处理异常,如果用户输入任何字符或无效输入如上



文章来源: Need To Take Input To Array Until User Enters 0 JAVA