需要输入到数组,直到用户输入0 Java



我需要帮助理解如何编写一定数量的整数(必须是1到10),并且一旦输入0(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,然后循环停止输入数组的输入。

感谢您的任何帮助!

好的,这是更多细节: -

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

    List<Integer> numbers = new ArrayList<Integer>();
    
  • 现在,在上面的代码中,您可以将number阅读语句(nextInt)放在While循环中,因为您想定期阅读它。并在循环中放置条件,以检查输入号码是否为INT: -

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

    numbers.add(num);
    
  • 如果它的0,请突破您的时循环。

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

在您的情况下,用户似乎能够输入任何数量的数字。在这种情况下,拥有数组并不是理想的,仅仅是因为在数组初始化之前需要知道数组的大小。但是您有一些选择:

  1. 使用arraylist。这是动态扩展的动态数据结构。
  2. 向用户询问他/她将要输入的数字数量,并用它来初始化数组。
  3. 创建一个阵列以对大小的某些假设为基础。

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

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

我强烈建议您使用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
    }
}

我希望这能解决您的疑问。除此之外,如果用户输入上述任何字符或无效输入,则需要处理异常

相关内容

  • 没有找到相关文章